微信小程序支付(PHP后台)“支付统一下单“接口的坑

本文介绍了在PHP后台实现微信小程序支付过程中遇到的问题,包括获取openid、签名制作、XML数据生成及调用支付接口的详细步骤。特别强调了ASCII字典排序的签名规则、XML数据结构的处理以及预支付id的获取。由于回调地址要求HTTPS,但出于成本考虑,作者选择了放弃服务器端回调,改为在小程序端处理支付成功状态。
摘要由CSDN通过智能技术生成

按照微信的文档来看确实流程是什么样的,但某些数据却神一般的缺少说明,硬生生调了一天才知道完整的使用数据。

官方的流程图是这样子的

小程序提交订单后就需要后台请求两次API,一次为获取openid(某文档说是在小程序内获取不安全,所以丢给后台来获取),后面一次为获取prepay_id。最后那次“推送支付结果”是用到回调地址"<notify_url>https://xxx.com</notify_url>",好像强制地址要求https,但微信小程序付款成功也有对应调用方法,所以放弃回调服务端的方法改订单状态,主要原因是没钱买证书。。。。

获取openId

官方文档里有说明,凭js_code获取openid,appid和secret(小程序密钥)这个在微信公众平台的小程序的管理中设置。

$data=file_get_contents('https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code');
$openId=json_decode($data)->openid;

设置xml的提交数据

$appAttr = array();
$appAttr['appid'] = '小程序ID';
$appAttr['attach'] = 'msg';
$appAttr['body'] = 'order';
$appAttr['detail'] = '{"goods_detail":[{"goo
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值