PS:v2版本支付的回调以及订单的查询都已经写过了,昨天在和别人讨论时,对相关的逻辑做出了较大的修改,回调配合订单查询共同使用,提高安全防护;
小程序端JS代码:
getData(){
var openid = wx.getStorageSync('openid')
var userName = wx.getStorageSync('userName')
// console.log(openid)
wx.request({
url: 'http://127.0.0.1:2910/wxPayV2/createOrder/createOrderAction.php',
method:'POST',
header:{
'content-type':'application/x-www-form-urlencoded'
},
data:{
'total_fee':1,
'body':'0.38mm.pen',
'openid':openid,
'userName':userName,
'goods_id': 1
},
success(res){
var out_trade_no = res.data.out_trade_no
wx.requestPayment({
nonceStr: res.data.nonceStr,
package: res.data.package,
paySign: res.data.sign,
timeStamp: res.data.timeStamp,
signType: 'MD5',
success(res){
wx.request({
url: 'http://127.0.0.1:2910/wxPayV2/queryOrder/queryOrderAction.php',
method:'POST',
header:{
'content-type':'application/x-www-form-urlencoded'
},
data:{
'out_trade_no':out_trade_no
},
success(res){
console.log(res)
}
})
},
fail(res){
wx.showToast({
title: '你取消了支付,支付失败',
icon: 'error',
duration: 2000
})
}
})
}
})
},
PS:这段JS代码中的userName与openid全都是从缓存中获取,先关操作请前往微信开放文档进行查阅
PHP代码 回调处理代码
callBackAction.php:
<?php
require_once dirname(__FILE__, 3) . '/config/appConfig.php';
require_once dirname(__FILE__, 3) . '/database/connect.php';
$getData = file_get_contents('php://input'); //接收微信的回调数据
$content = $getData;
$disposeData = simplexml_load_string($content, null, LIBXML_NOCDATA); //对xml格式数据进行解析
$json_data = json_encode($disposeData); //将数据转换为json格式
$array_data =