>위챗 애플릿 >위챗 개발 >WeChat Pay, H5 결제 개발

WeChat Pay, H5 결제 개발

高洛峰
高洛峰원래의
2017-03-01 09:55:055493검색

이 글에서는 WeChat 결제에 따른 H5 결제 구현 프로세스를 소개합니다.

1. 소개

H5 결제는 공용 계정을 기반으로 개발된 비위챗 브라우저 결제 방식으로(결제 승인은 별도로 신청해야 함), 위챗 외부의 모바일 H5 페이지를 만족시킬 수 있습니다. .WeChat 결제 요구 사항. .

테스트 주소

http://wxpay.weixin.qq.com/pub_v2/pay/wap.v2.php

http://wxpay.weixin.qq .com/mch/pay/h5.v2.php

렌더링

WeChat Pay, H5 결제 개발 WeChat Pay, H5 결제 개발

흐름도

WeChat Pay, H5 결제 개발

2. 상품정보 준비

주로 상품명, 가격, 거래번호 등을 정의합니다. 코드는 다음과 같습니다.

    include_once("../WxPayPubHelper/WxPayPubHelper.php");    //使用统一支付接口
    $unifiedOrder = new UnifiedOrder_pub();    
    //设置统一支付接口参数
    //设置必填参数
    //appid已填,商户无需重复填写
    //mch_id已填,商户无需重复填写
    //noncestr已填,商户无需重复填写
    //spbill_create_ip已填,商户无需重复填写
    //sign已填,商户无需重复填写
    $unifiedOrder->setParameter("body","H5支付测试");//商品描述
    $timeStamp = time();    $out_trade_no = WxPayConf_pub::APPID."$timeStamp";    $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号 
    $unifiedOrder->setParameter("total_fee","1");//总金额
    //$unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址 
    $unifiedOrder->setParameter("trade_type","WAP");//交易类型
    //非必填参数,商户可根据实际情况选填
    $unifiedOrder->setParameter("device_info","100001");//设备号

위 매개변수는 최종적으로 다음

<xml>
  
  <out_trade_no></out_trade_no>
  <total_fee>1</total_fee>
  //<notify_url></notify_url>
  <trade_type></trade_type>
  <device_info>100001</device_info>
  <appid></appid>
  <mch_id>1237905502</mch_id>
  <spbill_create_ip></spbill_create_ip>
  <nonce_str></nonce_str>
  <sign></sign></xml>

2. 통화 통합 결제 요청

위 XML을 통합 결제 인터페이스로 전송

https://api.mch.weixin.qq.com/pay/unifiedorder

다음 XML 데이터 가져오기

<xml>
  <return_code></return_code>  
  <return_msg></return_msg>  
  <appid></appid>  
  <mch_id></mch_id>  
  <device_info></device_info>  
  <nonce_str></nonce_str>  
  <sign></sign>  
  <result_code></result_code>  
  <prepay_id></prepay_id>  
  <trade_type></trade_type>  </xml>

이런 식으로 선불을 받게 됩니다

2. DeepLink

가맹점 서버가 API에 대해서는 공개 API [통합 주문](인터페이스의 trade_type을 WAP로 정의해야 함)을 참조하세요. WeChat은 판매자에게 선불 ID를 반환하고 판매자는 고정된 형식이며 사용자는 딥링크를 클릭하여 WeChat 결제를 활성화합니다.

딥링크 형식:

weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3D123%26prepayid%3Dwx20141203201153d7bac0d2e10889028866%26sign%3D6AF4B69CCC30926F85770F900D098D64%26timestamp%3D1417511263

딥링크를 생성하는 단계는 다음과 같습니다.

1단계: URL 형식에 따라 매개변수를 조합하고 $ 값 부분은 URL로 인코딩됩니다. 문자열1 생성:
string1: key1=Urlencode($value1)&key2=Urlencode($value2,&...
2단계: 전체 문자열1을 Urlencode하고 문자열2를 생성합니다.
String2 =Urlencode(string1 ; URLEncode
string2:


appid=wxf5b5e87a6a0fde94&noncestr=123&package=WAP&prepayid=wx201412101630480281750c890475924233&sign=53D411FB74FE0B0C79CC94F2AB0E2333&timestamp=1417511263

와 프로토콜 헤더 weixin://wap/pay?를 추가하여 최종 딥링크를 얻습니다.


rreee

td>WAPC380BEC2BFD727A4B6845133519F3AD6
필드 이름 th> 변수 이름 필수 유형 값 예시 th> 설명
공개 계정 ID appid String(32) wx8888888888888888 WeChat에서 할당한 공개 계정 ID
임의의 문자열 noncestr String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 임의 32비트 이하의 문자열. 권장되는 난수 생성 알고리즘<.>
주문 세부정보 확장 문자열 패키지 문자열(32)확장 필드, WAP를 고정적으로 입력
선불 거래 세션 ID prepayid String(64) wx201410272009395522657a690389285100 WeChat 통합에서 반환된 선불 회신 ID 주문 인터페이스는 후속 인터페이스 호출에 사용됩니다. 값은 2시간 동안 유효합니다.
Sign sign is td> String(32)서명, 자세한 내용은 서명 생성 알고리즘 참조
타임스탬프 타임스탬프 문자열(32) 1414561699

현재 시간, 기타 세부정보는 타임스탬프 규칙을 참조하세요

개발 문서: https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1

세 , 새 버전 프로세스

WeChat Pay, H5 결제 개발

1. 사용자가 판매자 측에서 주문을 완료하고 WeChat Pay를 사용하여 결제합니다

2. WeChat Pay 요청(통합 주문 인터페이스 호출) 참고: 거래 유형 trade_type=MWEB

3. WeChat Pay는 판매자 권한을 확인합니다

4. 결제 점프 URL(흐름도의 WeChat 전송 페이지 주소인 매개변수 이름 "mweb_url")과 같은 판매자 백엔드

5. 판매자 백엔드는 통합 주문 인터페이스에서 반환 매개변수를 수신하여 반환합니다. mweb_url을 프런트 엔드로

6. 판매자는 프런트 엔드 페이지를 통해 WeChat 전송 페이지 mweb_url에 액세스합니다(이 단계에서 WeChat Pay는 요청 소스가 합법적인지 확인하기 위해 참조를 확인합니다)

7. mweb_url 이체 페이지가 WeChat 결제 계산원을 활성화합니다.

8. WeChat Pay 결제가 활성화되고 동시에 mweb_url 이체 페이지가 닫힙니다.

9. WeChat Pay 결제에서 결제 완료

WeChat Pay 개발 H5 결제 관련 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

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