最近公司小程序需要使用支付功能。我们使用的是银联商务支付,那么如何在微信小程序中连接银联商务的微信小程序支付呢?这里记录下我在微信小程序1中实现的微信小程序支付流程1:接口部分:这里注意银联业务的小程序支付目前不支持测试账户支付,只使用官方参数实现小程序支付1:银联商户小程序支付接口地址:https://qr.chinaums.com/netpay-route-server/api/2:主要参数说明:(1):msgSrc来源:For例子:WWW.TEST.COM(2):msgType消息类型:微信小程序支付参数固定为:wx.unifiedOrder(3):mid商户号(4):tid终端号(5):requestTimestamp消息请求时间,格式yyyy-MM-ddHH:mm:ss(6):merOrderId订单号,这里注意传递给银联商户的订单号前缀必须是源号,比如测试号的源号是3194,那么这里的订单号必须以3194(7)开头:instMid机构商户号,这里固定为:MINIDEFAULT(8):totalAmount订单金额,这里的单位是分,比如1元,这个参数就是100(9):tradeType交易类型:这里固定为MINI(10):signType签名算法:有三种这里的参数:MD5、SHA1、RSA,这里我用MD5(11):subOpenId支付用户openid(12):notifyUrl支付结果通知地址,以及异步回调地址,这里注意:支付通知地址必须是伪静态地址,例如:XXXXX/back/index,不是XXXX/index.php?r=back/index(13):sign签名,将以上参数按a-z的顺序排序,并用&字符连接。如果连接后有转义符,则去掉转义符,然后进行md5加密得到签名接口。在微信小程序下单的简单示例如下:$url='https://qr.chinaums.com/netpay-route-server/api/';$requestTimestamp=date('Y-m-dH:i:s',time());$data=['msgSrc'=>'XXX',//消息来源'msgType'=>'wx.unifiedOrder',//消息类型'requestTimestamp'=>$requestTimestamp,'mid'=>'XXX','tid'=>'XXX','merOrderId'=>'XXX','instMid'=>'MINIDEFAULT','totalAmount'=>1,'tradeType'=>'MINI','signType'=>'MD5','subOpenId'=>'XXX','notifyUrl'=>'XXX',//回调地址];//获取符号参数ksort($data);重置($数据);$选项='';foreach($dataas$key=>$value){$options.=$key.'='。$值。'&';}$options=rtrim($options,'&');//有转义符,则去掉转义符if(get_magic_quotes_gpc()){$options=stripslashes($options);}$sign=md5($options.$params['mdKey']);$data['sign']=$sign;程序下单接口$client=newClient();$response=$client->createRequest()->setMethod('POST')//请求方法->setUrl($url)//请求地址->setData($data)//数据传输数组->setHeaders(['内容类型'=>'application/json'])//header->setFormat(Client::FORMAT_JSON)//提交数据的格式->send();if(!$response->isOk){return['type'=>'error','message'=>'支付调用失败'];}if($response->data\['errCode']=='SUCCESS'){return['type'=>'success','message'=>'支付调用成功','data'=>$response->data\['miniPayRequest'\],//小程序支付请求消息,带签名信息];}else{return['type'=>'error','message'=>'Paymentcallfailed'.$response->data['errMsg']];}2:小程序端:银联业务接口返回的miniPayRequest参数包含微信小程序调用支付的所有参数,所以我们只需要在接口中看到数据填写微信小程序即可实现微信小程序支付//这里的payData是接口返回的数据参数paySign,success:(res)=>{//支付成功处理},fail:(res)=>{//支付失败处理}})here我们在微信小程序中实现了对接银联商务支付。微信小程序的支付交换是后价值转移。具体信息如下:您可以根据自己项目的具体需求进行加工。这里注意回调结束时需要输入SUCCESS或者FAILED,否则可能会出现这个通知
