WeChat 스캔 코드 결제 시 발생하는 문제
네이티브 결제 URL 매개변수 오류
콜백인터페이스URL에 콜백이 있지만 매개변수를 수신할 수 없습니다
판매자 백엔드 반환된 데이터 필드 구조가 잘못되었습니다
판매자 주문 정보를 가져오는 시간 초과 또는 판매자가 반환한 httpcode가 200이 아닙니다
문제 해결
기본 결제 URL 매개변수 오류
이 오류는 일반적으로 QR 코드 URL을 얻은 후 WeChat에서 QR 코드를 생성하고 스캔할 때 발생합니다. 이런 문제가 있는 경우
를 확인해주세요. 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, user's openid 등의 매개변수가 일반과 같다고 생각하시겠지만 실제로 이 콜백에서 반환되는 매개변수는 XML입력 스트림
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");
이며, 결과는
< ;return_msg>
public void wxpay(){
> 사용 with 사용 ' s 코드 사용
위 내용은 WeChat 스캔 코드 결제 모드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!