前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php微信支付回调完整版案例 V2

php微信支付回调完整版案例 V2

作者头像
超级小可爱
发布2023-10-17 16:02:56
6597
发布2023-10-17 16:02:56
举报
文章被收录于专栏:小孟开发笔记小孟开发笔记

代码如下,配置商户支付密钥后可以直接用

代码语言:javascript
复制
// 配置信息
$key = 'your_key';  // 商户支付密钥
 
// 获取回调数据
$xml = file_get_contents('php://input');
$data = fromXml($xml);
 
// 验证签名
$sign = $data['sign'];
unset($data['sign']);
if (makeSign($data, $key) != $sign) {
    exit('fail');
}
 
// 处理业务逻辑
if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
    // 支付成功,处理订单逻辑
    // ...
    // 返回结果
    exit('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>');
} else {
    // 支付失败,记录日志
    // ...
    // 返回结果
    exit('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>');
}
 
// 生成签名
function makeSign($data, $key) {
    ksort($data);
    $str = '';
    foreach ($data as $k => $v) {
        if ($v != '' && !is_array($v)) {
            $str .= $k.'='.$v.'&';
        }
    }
    $str .= 'key='.$key;
    return strtoupper(md5($str));
}
 
// xml转数组
function fromXml($xml) {
    libxml_disable_entity_loader(true);
    return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档