Heim > WeChat-Applet > Mini-Programmentwicklung > Detaillierte Erläuterung der Fehlerzusammenfassung bei der WeChat-Applet-Zahlungsfunktionsentwicklung

Detaillierte Erläuterung der Fehlerzusammenfassung bei der WeChat-Applet-Zahlungsfunktionsentwicklung

高洛峰
Freigeben: 2017-03-27 14:06:33
Original
3101 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen zur Zusammenfassung der Fehler bei der Entwicklung der Zahlungsfunktion des WeChat Mini-Programms vorgestellt. Freunde in Not können darauf zurückgreifen.

Zusammenfassung der Fehler bei der Entwicklung der Zahlungsfunktion von WeChat Mini-Programm

WeChat Mini-Programm Ich habe endlich die Fallstricke bei der Bezahlung überwunden und festgestellt, dass es darin ziemlich große Fallstricke gibt. Ich veröffentliche jetzt einen Beitrag und hoffe, dass Studenten, die in Zukunft in diese Falle tappen, dies tun können Werfen Sie einen Blick darauf:

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

Der Geschäftsprozess ist hier zu erkennen, wenn Sie sich das Dokument ansehen. Die erste Gefahr besteht darin, die OpenID des Benutzers zu erhalten. Die Parameter müssen in der URL-Verbindung geschrieben werden, andernfalls wird der Fehler {"errcode":40013,"errmsg": "invalid appid, hints: [ req_id: iil1ba0504ns86 ]"} gemeldet

 onLoad: function () {
  var that = this
  wx.login({
   success: function (res) {
    if (res.code) {
     //发起网络请求
     wx.request({
      url: 'https://api.weixin.qq.com/sns/jscode2session?appid=wxaacf22345345cfc7162fe3&secret=83ebd41c3e6f34a49b3a34578063434548ff3f71&js_code=' + res.code + '&grant_type=authorization_code',
      method: "POST",
      success: function (res) {
       that.setData({
        openid: res.data.openid
       })
      }
     })
    } else {
     console.log('获取用户登录态失败!' + res.errMsg)
    }
   }
  });
 }
Nach dem Login kopieren

Der zweite Fallstrick ist die einheitliche Zahlungsauftragsschnittstelle. Der Grund dafür ist, dass sich viele Menschen von der verschlüsselten Signatur unterscheiden

Adresse des Signaturverschlüsselungstools: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

Beim Signieren und Verschlüsseln muss es sein in utf-8 konvertiert werden. Zum Verschlüsseln verwende ich meine eigene Schnittstelle zum Verschlüsseln >

Drittens gibt es hier mehrere Fallstricke. Der erste besteht darin, dass viele App-IDs nicht als AppID geschrieben werden können Beim Aufruf der Zahlung wird ein Zahlungssignaturfehler gemeldet. Sie müssen außerdem zur Signaturschnittstelle gehen, um zu überprüfen, ob die Signaturen konsistent sind und ob die Parameter korrekt sind. Beim Aufruf der WeChat-Zahlung müssen Sie die AppId hinzufügen
 // 统一下单接口获取sign(签名)
 paysignjsapi: function (appid, attach, body, mch_id, nonce_str, notify_url, openid, out_trade_no, spbill_create_ip, total_fee, trade_type, key) {
  var self = this;
  //加密签名
  wx.request({
   url: 'http://localhost:8080/XinXingWXApi/wxXcxApi/Md5Encrypt.do',
   method: 'GET',
   data: {
    appid: appid,
    attach: attach,
    body: body,
    mch_id: mch_id,
    nonce_str: nonce_str,
    notify_url: notify_url,
    openid: openid,
    out_trade_no: out_trade_no,
    spbill_create_ip: spbill_create_ip,
    total_fee: total_fee,
    trade_type: trade_type,
    key: key
   },
   //统一下单
   success: function (res) {
    var sign = res.data.strMd5
    var formData = "<xml>"
    formData += "<appid>" + appid + "</appid>" //appid 
    formData += "<attach>" + attach + "</attach>" //附加数据 
    formData += "<body>" + body + "</body>"    //标题
    formData += "<mch_id>" + mch_id + "</mch_id>" //商户号 
    formData += "<nonce_str>" + nonce_str + "</nonce_str>" //随机字符串,不长于32位。 
    formData += "<notify_url>" + notify_url + "</notify_url>" //异步接收微信支付结果通知的回调地址
    formData += "<openid>" + openid + "</openid>"  //用户Id
    formData += "<out_trade_no>" + out_trade_no + "</out_trade_no>" //商户订单号
    formData += "<spbill_create_ip>" + spbill_create_ip + "</spbill_create_ip>"
    formData += "<total_fee>" + total_fee + "</total_fee>" //金额
    formData += "<trade_type>" + trade_type + "</trade_type>"  //公共号支付
    formData += "<sign>" + sign + "</sign>"//签名
    formData += "</xml>"
Nach dem Login kopieren

Vielen Dank fürs Lesen. Ich hoffe, es kann allen helfen.
 //请求统一下单接口
    wx.request({
     url: "https://api.mch.weixin.qq.com/pay/unifiedorder",
     method: 'POST',
     data: formData,
     success: function (data) {
      wx.request({
       url: "http://localhost:8080/XinXingWXApi/wxXcxApi/xmlAnalyze.do?strXml=" + data.data,
       method: 'POST',
       success: function (res) {
        var pk = 'prepay_id=' + res.data.prepayId;
        var timeStamp = self.createTimeStamp();
        //获取支付签名,并支付
        self.getsignType(appid, timeStamp, nonce_str, pk, "MD5", key);
       }
      })
     }
    })
   }
  });
 }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Fehlerzusammenfassung bei der WeChat-Applet-Zahlungsfunktionsentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage