ホームページ >WeChat アプレット >WeChatの開発 >WeChatスキャンコード支払いモード
WeChat スキャン コード支払い時に発生する問題
ネイティブ支払い URL パラメータ エラー
CallbackInterfaceURL にはコールバックがありますが、パラメータを使用できませんを受け取りました
販売者のバックエンドによって返されたデータフィールド構造が不正です
販売者の注文情報の取得がタイムアウトしたか、販売者によって返されたhttpコードが200ではありません
問題を解決してください
ネイティブの支払い URL パラメーターが間違っています
このエラーは一般的なエラーです。QR コード URL を取得した後、QR コードが生成され、WeChat でスキャンされるときに表示されます。この種の問題が発生した場合は、
1. QR コードの生成に必要なパラメータ リストのパラメータにエラーがあるかどうか (大文字と小文字を区別します) を確認してください。
2. 署名時に署名アルゴリズムが正しいかどうかを確認してください。検証ツール
以下はQRコード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); }
コールバックインターフェイスURLにはコールバックがありますが、パラメータを受け取ることができません
Enumeration
while (en.hasMoreElements()) { Object o= en.nextElement(); System.out.println(o.toString()+"="+getPara(o.toString())); }
上記コードの出力 パラメータは全てNULL
公式ドキュメントの説明があまり明確ではないため、コールバックリクエスト内のproductidやユーザーのopenidなどのパラメータは通常のパラメータと同じだと誰もが思っています。実際、このコールバックによって返されるパラメータは XMLinput ストリーム
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");
result は
public void wxpay(){ 以上がWeChatスキャンコード支払いモードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
< nonce_str>
try