国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
WeChat-Scancode-Zahlung (Modus 1)
Heim WeChat-Applet WeChat-Entwicklung WeChat-Scancode-Zahlungsmodus

WeChat-Scancode-Zahlungsmodus

Apr 04, 2017 am 11:30 AM

WeChat-Scancode-Zahlung (Modus 1)


Probleme bei der WeChat-Scancode-Zahlung

  • Nativer Zahlungs-URL-Parameterfehler

  • RückrufSchnittstelleDie URL hat einen Rückruf, aber die Parameter k?nnen nicht empfangen werden

  • H?ndler-Backend Die zurückgegebene Datenfeldstruktur ist illegal

  • Zeitüberschreitung beim Abrufen der Bestellinformationen des H?ndlers oder der vom H?ndler zurückgegebene httpcode ist nicht 200

Problem l?sen

  • Nativer Zahlungs-URL-Parameterfehler
    Dieser Fehler tritt im Allgemeinen auf, wenn der QR-Code nach Erhalt der QR-Code-URL auf WeChat generiert und gescannt wird. Wenn Sie auf ein solches Problem sto?en, überprüfen Sie bitte

1, ob Fehler in den Parametern in der Parameterliste vorhanden sind, die zum Generieren des QR-Codes erforderlich sind (Gro?-/Kleinschreibung beachten)
2. Signieren Sie die Signatur in den Parametern. Korrigieren Sie den Signaturalgorithmus zu diesem Zeitpunkt. Tool zur Signaturüberprüfung


Das Folgende ist der Code zum Generieren der QR-Code-URL

/**
?*?
?*?@author?Javen
?*?2016年5月14日
?*?掃碼支付獲取二維碼URL(模式一)
?*/
public?String?getCodeUrl(){
????String?url="weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXX&time_stamp=XXXXX&nonce_str=XXXXX";
????String?product_id="001";
????String?timeStamp=Long.toString(System.currentTimeMillis()?/?1000);
????String?nonceStr=Long.toString(System.currentTimeMillis());
????Map<String, String>?packageParams?=?new?HashMap<String, String>();
????packageParams.put("appid",?appid);
????packageParams.put("mch_id",?partner);
????packageParams.put("product_id",product_id);
????packageParams.put("time_stamp",?timeStamp);
????packageParams.put("nonce_str",?nonceStr);
????String?packageSign?=?PaymentKit.createSign(packageParams,?paternerKey);
????return?StringUtils.replace(url,?"XXXXX",?packageSign,appid,partner,product_id,timeStamp,nonceStr);
}
  • Callback-Schnittstellen-URL Es gibt einen Callback, aber die Parameter k?nnen nicht empfangen werden

    Enumeration

    ??while?(en.hasMoreElements())?{
    ??????Object?o=?en.nextElement();
    ??????System.out.println(o.toString()+"="+getPara(o.toString()));
    ??}

Die im obigen Code ausgegebenen Parameter sind alle NULL

Da die offizielle Dokumentbeschreibung nicht sehr klar ist, denkt jeder, dass die Parameter wie Produkt-ID und Benutzer-OpenID in der Rückrufanforderung die sind Der von diesem Rückruf zurückgegebene Parameter ist tats?chlich ein XMLEingabestream

HttpServletRequest?request?=?getRequest();
?????????/**
?????????*?獲取用戶掃描二維碼后,微信返回的信息
?????????*/
????????InputStream?inStream?=?request.getInputStream();
????????ByteArrayOutputStream?outSteam?=?new?ByteArrayOutputStream();
????????byte[]?buffer?=?new?byte[1024];
????????int?len?=?0;
????????while?((len?=?inStream.read(buffer))?!=?-1)?{
????????????outSteam.write(buffer,?0,?len);
????????}
????????outSteam.close();
????????inStream.close();
????????String?result??=?new?String(outSteam.toByteArray(),"utf-8");

Ergebnis ist


< ;return_code>

< ;![CDATA[wx5e9360a3f46f64cd]]>




&lt ! < /trade_type><br><code_url>![CD ATA[weixin:/ /wxpay/bizpayurl?pr=Gj3ZF2b]]</code_url><br></xml><br></p>Wenn die zurückgegeben wird return_code result_code ist nicht ERFOLGREICH und die Rückrufschnittstelle gibt keine Daten zurück oder die zurückgegebenen Daten sind nicht zul?ssig. Wenn dies zul?ssig ist, wird der folgende Fehler angezeigt <p></p> <ul class=" list-paddingleft-2"> <li>Die vom H?ndler zurückgegebene Datenfeldstruktur Backend ist illegal (das zurückgegebene Datenpaketformat ist falsch)<p></p> </li> <li>Holen Sie sich den H?ndler. Die Bestellinformationen laufen ab oder der vom H?ndler zurückgegebene httpcode ist nicht 200 (kein zurückgegebenes Datenpaket) <p></p> </li> </ul>Wenn mit dem oben Gesagten kein Problem vorliegt, bleibt der letzte Schritt bestehen. Das Backend-System des H?ndlers gibt die prepay_id an WeChat zurück. Im Folgenden finden Sie einen detaillierten Code <p> </p> <pre class="brush:php;toolbar:false">/** ?*?@author?Javen ?*?2016年5月14日 ?*?掃碼支付回調(diào)(模式一) ?*/ ?ffentlich void wxpay () {

Versuchen Sie es mit {
httpsservletRequest request = getRequest ();
/**

?????????*?獲取用戶掃描二維碼后,微信返回的信息
?????????*/
????????InputStream?inStream?=?request.getInputStream();
????????ByteArrayOutputStream?outSteam?=?new?ByteArrayOutputStream();
????????byte[]?buffer?=?new?byte[1024];
????????int?len?=?0;
????????while?((len?=?inStream.read(buffer))?!=?-1)?{
????????????outSteam.write(buffer,?0,?len);
????????}
????????outSteam.close();
????????inStream.close();
????????String?result??=?new?String(outSteam.toByteArray(),"utf-8");

????????System.out.println("callback>>>>"+result);
????????/**
?????????*?獲取返回的信息內(nèi)容中各個(gè)參數(shù)的值
?????????*/
????????Map<String, String>?map?=?PaymentKit.xmlToMap(result);
????????for?(String?key?:?map.keySet())?{
???????????????System.out.println("key=?"+?key?+?"?and?value=?"?+?map.get(key));
????????}

????????String?appid=map.get("appid");
????????String?openid?=?map.get("openid");
????????String?mch_id?=?map.get("mch_id");
????????String?is_subscribe?=?map.get("is_subscribe");
????????String?nonce_str?=?map.get("nonce_str");
????????String?product_id?=?map.get("product_id");
????????String?sign?=?map.get("sign");
????????Map<String, String>?packageParams?=?new?HashMap<String, String>();
????????packageParams.put("appid",?appid);
????????packageParams.put("openid",?openid);
????????packageParams.put("mch_id",mch_id);
????????packageParams.put("is_subscribe",is_subscribe);
????????packageParams.put("nonce_str",nonce_str);
????????packageParams.put("product_id",?product_id);

????????String?packageSign?=?PaymentKit.createSign(packageParams,?paternerKey);
????????//?統(tǒng)一下單文檔地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

????????Map<String, String>?params?=?new?HashMap<String, String>();
????????params.put("appid",?appid);
????????params.put("mch_id",?mch_id);
????????params.put("body",?"測(cè)試掃碼支付");
????????String?out_trade_no=Long.toString(System.currentTimeMillis());
????????params.put("out_trade_no",?out_trade_no);
????????int?price=((int)(Float.valueOf(10)*100));
????????params.put("total_fee",?price+"");
????????params.put("attach",?out_trade_no);

????????String?ip?=?IpKit.getRealIp(getRequest());
????????if?(StrKit.isBlank(ip))?{
????????????ip?=?"127.0.0.1";
????????}

????????params.put("spbill_create_ip",?ip);
????????params.put("trade_type",?TradeType.NATIVE.name());
????????params.put("nonce_str",?System.currentTimeMillis()?/?1000?+?"");
????????params.put("notify_url",?notify_url);
????????params.put("openid",?openid);

????????String?paysign?=?PaymentKit.createSign(params,?paternerKey);
????????params.put("sign",?paysign);

????????String?xmlResult?=?PaymentApi.pushOrder(params);

????????System.out.println("prepay_xml>>>"+xmlResult);

????????/**
?????????*?發(fā)送信息給微信服務(wù)器
?????????*/
????????Map<String, String>?payResult?=?PaymentKit.xmlToMap(xmlResult);

????????String?return_code?=?payResult.get("return_code");
????????String?result_code?=?payResult.get("result_code");

????????if?(StrKit.notBlank(return_code)?&&?StrKit.notBlank(result_code)?&&?return_code.equalsIgnoreCase("SUCCESS")&&result_code.equalsIgnoreCase("SUCCESS"))?{
????????????//?以下字段在return_code?和result_code都為SUCCESS的時(shí)候有返回
????????????String?prepay_id?=?payResult.get("prepay_id");

????????????Map<String, String>?prepayParams?=?new?HashMap<String, String>();
????????????prepayParams.put("return_code",?"SUCCESS");
????????????prepayParams.put("appId",?appid);
????????????prepayParams.put("mch_id",?mch_id);
????????????prepayParams.put("nonceStr",?System.currentTimeMillis()?+?"");
????????????prepayParams.put("prepay_id",?prepay_id);
????????????String?prepaySign?=?null;
????????????if?(sign.equals(packageSign))?{
????????????????prepayParams.put("result_code",?"SUCCESS");
????????????}else?{
????????????????prepayParams.put("result_code",?"FAIL");
????????????????prepayParams.put("err_code_des",?"訂單失效");???//result_code為FAIL時(shí),添加該鍵值對(duì),value值是微信告訴客戶的信息
????????????}
????????????prepaySign?=?PaymentKit.createSign(prepayParams,?paternerKey);
????????????prepayParams.put("sign",?prepaySign);
????????????String?xml?=?PaymentKit.toXml(prepayParams);
????????????log.error(xml);
????????????renderText(xml);
????????}
????}?catch?(UnsupportedEncodingException?e)?{
????????//?TODO?Auto-generated?catch?block
????????e.printStackTrace();
????}?catch?(IOException?e)?{
????????//?TODO?Auto-generated?catch?block
????????e.printStackTrace();
????}

}


Das obige ist der detaillierte Inhalt vonWeChat-Scancode-Zahlungsmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276