>  기사  >  위챗 애플릿  >  WeChat 애플릿을 사용한 WeChat 결제 단계에 대해

WeChat 애플릿을 사용한 WeChat 결제 단계에 대해

不言
不言원래의
2018-06-23 11:26:352766검색

최근 위챗 애플릿 개발이 결제 단계에 들어섰는데, 앱 개발에 종사하다 보니 아직도 결제 과정을 암기하고 있어요. 이번 글에서는 위챗 미니 프로그램을 통한 위챗 결제 절차에 대해 알려드리겠습니다. 필요하신 분들은 참고하시면 됩니다

최근에는 위챗 미니 프로그램 개발이 결제 단계에 들어와서 앱 개발에 들어갔습니다. 아직도 지불 과정을 마음으로 알고 있습니다. 그런데 위챗 미니 프로그램 결제가 좀 이상한데요. 공식 계정에서 애플리케이션을 생성했는데, 공식 계정에서 문서 소개를 찾을 수 없어 매우 혼란스럽습니다. 미니 프로그램의 주인은 다음과 같습니다. 결제를 위한 공식 계정. 앱 결제의 범위나 범위도 의심스럽습니다. 다음은 미니 프로그램 결제 문서(미니 프로그램 API에 중첩됨) 입구입니다:

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index= 1

미니 프로그램 결제 단계:

1, 선불

2, 선불 데이터 + 서명 기반——> 결제 시작

3, 결제 콜백

다음 3단계를 따르세요.

1, 선불. 이 인터페이스는 프런트엔드를 통해 개발자 서버에 결제 정보(주문 번호, 가격 등)를 제출합니다. 개발자 서버는 이를 WeChat에 제출한 후 실제 프런트엔드에서 결제해야 하는 일부 정보를 반환합니다.

개발자 서버 선불 결제 인터페이스:

https://()htm?total_fee=100&cid=6001&orderCodes=2016120119
{
"sign":"A2****************A6",
"timestamp":"14****************68",
"package":"Sign=WXPay",
"partnerId":"14****************02",
"appid":"wx****************ab",
"nonceStr":"9f****************37",
"prepayId":"wx****************54"
}

2, 결제 시작(결제 시작에는 appid를 업로드할 필요가 없지만

그러나 paySign에 서명하려면 appid가 필요합니다. 우선)

wx.requestPayment({ 
nonceStr: res.data.nonceStr, 
package: "prepay_id="+res.data.prepayId, 
signType: 'MD5', 
timeStamp: res.data.timestamp, 
paySign: sign,//<strong><span style="color:#ff0000;">五个字段参与签名(区分大小写):appId,nonceStr,package,signType,timeStamp(需要注意的是,这5个参数签名排序的顺序按照ASCII字典序排序)</span></strong> 
success: function(res){ 
console.log("支付成功"); 
}, 
fail: function() { 
}, 
complete: function() { 
} 
})

서명 서명 생성

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1&t= 20161122

WeChat 애플릿 MD5 암호화 도구 다운로드 주소: https://code.csdn.net/snippets/2019875/master/download

var MD5Util = require(&#39;../../../utils/md5.js&#39;);
var sign = &#39;&#39;; 
//<strong><span style="color:#ff0000;">顺序按照ASCII字典序排序</span></strong> 
var signA = "appId="+app.appId+"&nonceStr="+res.data.nonceStr+"&package=prepay_id="+res.data.prepayId+"&signType=MD5&timeStamp="+res.data.timestamp; 
var signB = signA+"&key="+app.key; 
sign = MD5Util.MD5(signB).toUpperCase();

위는 서명을 생성하는 코드입니다. 그다지 명확하지 않습니다. 공식 문서에 대한 자세한 설명은 다음과 같습니다.

Assumption 전송되는 매개변수는 다음과 같습니다.

appid: wxd930ea5d5a258f4f(需要注意的是appid 在wx.requestPayment({})发起支付是不上传,但是签名时需要)
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA

1단계: 매개변수를 키=값 형식으로 정렬하고 ASCII 사전 순서로 정렬합니다.

stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

2단계: Splice API 키:

stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"
sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"

이때의 기호는 wx.requestPayment 업로드 매개변수 paySign에 사용됩니다.

드디어 최종 전송된 데이터를 받았습니다.

<xml> 
<appid>wxd930ea5d5a258f4f</appid> 
<mch_id>10000100</mch_id> 
<device_info>1000<device_info> 
<body>test</body> 
<nonce_str>ibuaiVcKdpRxkhJA</nonce_str> 
<sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign> 
<xml>

위 내용은 모두의 학습에 도움이 되기를 바랍니다.

관련 추천:

WeChat 미니 프로그램은 PHP를 사용하여 결제 기능을 구현합니다.

WeChat 미니 프로그램(ecshop)의 쇼핑몰 개발에 대해

위 내용은 WeChat 애플릿을 사용한 WeChat 결제 단계에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.