微信小程序支付方式,如何在小程序中实现微信支付(如何在微信小程序中激活微信支付)

2024-02-29
来源:网络整理

如何在小程序中实现微信支付(如何在微信小程序中激活微信支付)

微信小程序支付方式_小程序微信支付功能_微信小程序支付方式有哪些

程序员必备的接口测试调试工具:立即使用=++Mock+设计、调试、文档、自动化测试工具后端、前端、测试、在线协作同时进行,内容实时同步

如何在小程序中实现微信支付:

前期准备:

1.微信支付已开通,小程序已绑定微信支付;

2.准备小程序、微信支付商户号、支付秘钥。

商户系统与微信支付系统的交互主要有:

1、调用小程序中的登录接口,获取用户的登录信息

2、调用商户服务器支付统一下单接口进行预付款

/** * 预付款请求接口(POST) * @$ * @$body 商品简要说明 * @$订单号 * @$金额 * @json数据 */ (){$=$this->;$=I ('post.');$body = I('post.body');$ = I('post.');$ = I('post.');//统一订单参数构造$ = (' ' => $[''],''=> $[''],''=> self::(),'body'=> $body,''=> $,''=> $ * 100 , ''=> (),''=> '://'。

$['']。 '/Api//',''=> '',''=> $);$['sign'] = self::($);//请求数据$ = self::($);$url = '. mch。 。 QQ。 com/pay/';$res = self::($url, $);if(!$res){self::("Can't the ");}//这句话是用来查看服务器有什么返回结果测试后即可删除 //(.'//log1.txt',$res,);$ = self::($res);if(($['']) == 'FAIL') {self ::(($['']));}if(($['']) == '失败'){self::(($['']));}self::(( 'data '=>$));//$this->($);}登录后复制

3、调用商户服务器重新签名接口并返回支付数据。

/** * 支付接口(POST) * @$预付款ID(调用()方法后返回数据获取) * @json数据 */ pay(){$ = $this->;$ = I( 'post .');$data = (''=> $[''],''=> time(),''=> self::(),''=> '='.$,'' => 'MD5');$data[''] = self::($data);$this->($data);}登录后复制

4、小程序支付完成后,商户服务器收到支付回调通知

小程序代码:

wx.({ '': '', '': '', '': '', '': 'MD5', '': '', '':(res){ }, '失败':(res ){ }})登录后复制

服务器回调通知:

//微信支付回调(){$xml = $[''];//这句话用于查看服务器返回的XML数据,测试后可以删除 //(.'//log2.txt' ,$res ,);//将服务器返回的XML数据转换为数组$data = self::($xml);//保存微信服务器返回的签名sign$ = $data['sign'] ;//sign不参与签名算法 ($data['sign']);$sign = self::($data);//判断签名是否正确并判断支付状态 if ( ($sign= ==$) && ($data['']= ='') && ($data['']=='') ) {$ = $data;//获取服务器返回的数据$ = $data [''];//订单号$ = $data[ ''];//付款人$ = $data[''];//付款金额$ = $data['']; //微信支付流水号//更新数据库 $this->($,$,$ ,$);}else{$ = ;}//返回状态到微信服务器 if ($) {$str='';} else{$str='';}回显$str; $;}登录后复制

小程序完整代码如下:

/** * 支付函数* @ {[type]} [] * @{[type]}[] */pay:(,,fail){var = {body:'',:0,:''}. (, );if(.body.==0){wx. ({:'支付信息描述错误'}) ;}if(.==0){wx. ({:'支付金额不能为0'}); }如果(..==0){wx. ({:'订单号不能为空'}); }var 这 = 这;这。 ((){.=;这个。({url:'api/pay/',data:,:(res){var data = res.

数据;。 日志(数据);if(!数据。){wx. ({:data['']}) ;}这个。 ({url:'api/pay/pay',data:{:data.data.data.},:(){var = .data;.log();wx.({'': ..(), '': .,'': .,'': .,'': .,'': (succ) {&&(succ);},'失败': (err) {fail&&fail(err);},' ': (comp) {}})}})}})})}登录后复制

推荐:《小程序开发教程》

分享