发起支付

本文整理于网络,仅供阅读参考,如有不妥之处,敬请批评指正!如果您想加入微擎社区版技术大牛微信群和QQ群,请联系微信: ccccyyyy4444 或者 QQ:155120699 

在小程序端发起支付,需要配合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) {
		
}
本页目录
  1. PHP端生成支付参数
  2. 小程序端发起支付
  3. 验证支付结果
文档统计
浏览次数:175736次
编辑次数:210次历史版本
最近更新:2023-01-16 16:16:34

如果看不懂微擎社区版二次开发手册或者遇到问题,请联系微信: ccccyyyy4444 或者 QQ:155120699 ,如果我们有空闲时间,可以免费为您答疑解惑。