ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
在小程序端发起支付,需要配合PHP端共同来完成,PHP调用支付函数,传入订单号、金额、用户OPENID等信息,生成支付参数,返回给小程序端,然后利用JS发起支付。 支付完成后,与模块中支付处理一样,系统会调用小程序接口类中的**payResult**方法来执行支付完成的代码。 ### PHP端生成支付参数 ~~~ class We7WxappDemoModuleWxapp extends WeModuleWxapp { public function doPagePay() { global $_GPC, $_W; //获取订单号,保证在业务模块中唯一即可 $orderid = intval($_GPC['orderid']); //构造支付参数 $order = array( 'tid' => $orderid, 'user' => $_W['openid'], //用户OPENID 'fee' => floatval($fee), //金额 'title' => '小程序支付示例', ); //生成支付参数,返回给小程序端 $pay_params = $this->pay($order); if (is_error($pay_params)) { return $this->result(1, '支付失败,请重试'); } return $this->result(0, '', $pay_params); }} ~~~ ### 小程序端发起支付 ~~~ app.util.request({ 'url': 'entry/wxapp/pay', //调用wxapp.php中的doPagePay方法获取支付参数 data: { orderid: options.orderid, }, 'cachetime': '0', success(res) { if (res.data && res.data.data && !res.data.errno) { //发起支付 wx.requestPayment({ 'timeStamp': res.data.data.timeStamp, 'nonceStr': res.data.data.nonceStr, 'package': res.data.data.package, 'signType': 'MD5', 'paySign': res.data.data.paySign, 'success': function (res) { //执行支付成功提示 }, 'fail': function (res) { backApp() } }) } }, fail(res) { wx.showModal({ title: '系统提示', content: res.data.message ? res.data.message : '错误', showCancel: false, success: function (res) { if (res.confirm) { backApp() } } }) }}) ~~~ ### 验证支付结果 和模块一样,验证代码写在**payResult()**函数中即可。 ~~~ class We7WxappDemoModuleWxapp extends WeModuleWxapp { public function payResult($log) {} ~~~