>위챗 애플릿 >위챗 개발 >WeChat 결제 개발 동적 링크 기본 결제 예시 코드

WeChat 결제 개발 동적 링크 기본 결제 예시 코드

高洛峰
高洛峰원래의
2017-03-27 14:12:392953검색

이 글에서는 위챗 결제의 동적 링크 QR 코드를 기반으로 한 네이티브 결제 구현 프로세스를 주로 소개하며, 위챗 결제를 개발하는 파트너에게 도움이 되기를 바랍니다.

참고:

WeChat Pay는 이제 v2 버전과 v3 버전으로 구분됩니다. 2014년 9월 10일 이전에 신청하신 분들은 v2 버전이고, 그 이후에 신청하신 분들은 v3 버전입니다. WeChat Pay V3 버전에는 paySignKey 매개변수가 없습니다. 이 기사에서는 WeChat Pay v3를 소개합니다.

1. 상품 정보 생성

동적링크 결제 과정에서는 상품 거래가 먼저 생성된 후 결제 거래가 이루어집니다.

1. 상품정보 준비

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

include_once("../WxPayPubHelper/WxPayPubHelper.php");

  //使用统一支付接口
  $unifiedOrder = new UnifiedOrder_pub();
  
  //设置统一支付接口参数
  //设置必填参数
  //appid已填,商户无需重复填写
  //mch_id已填,商户无需重复填写
  //noncestr已填,商户无需重复填写
  //spbill_create_ip已填,商户无需重复填写
  //sign已填,商户无需重复填写
  $unifiedOrder->setParameter("body","贡献一分钱");//商品描述
  $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","NATIVE");//交易类型
  //非必填参数,商户可根据实际情况选填
  $unifiedOrder->setParameter("device_info","100001");//设备号

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

<xml>
 <body><![CDATA[贡献一分钱]]></body>
 <out_trade_no><![CDATA[100001_1433009089]]></out_trade_no>
 <total_fee>1</total_fee>
 <notify_url><![CDATA[http://www.doucube.com/weixin/demo/notify_url.php]]></notify_url>
 <trade_type><![CDATA[NATIVE]]></trade_type>
 <device_info>100001</device_info>
 <appid><![CDATA[wx1d065b0628e21103]]></appid>
 <mch_id>1237905502</mch_id>
 <spbill_create_ip><![CDATA[61.129.47.79]]></spbill_create_ip>
 <nonce_str><![CDATA[gwpdlnn0zlfih21gipjj5z53i7vea8e8]]></nonce_str>
 <sign><![CDATA[C5A1E210F9B4402D8254F731882F41AC]]></sign>
</xml>

와 유사한 XML 매개변수로 캡슐화됩니다. 2. 통합 결제 요청

위 XML을 보냅니다. 통합 결제 인터페이스

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

다음과 같은 XML 데이터를 가져옵니다

<xml>
 <return_code><![CDATA[SUCCESS]]></return_code> 
 <return_msg><![CDATA[OK]]></return_msg> 
 <appid><![CDATA[wx1d065b0628e21103]]></appid> 
 <mch_id><![CDATA[1237905502]]></mch_id> 
 <device_info><![CDATA[100001]]></device_info> 
 <nonce_str><![CDATA[6u8ovTtFupTagsiY]]></nonce_str> 
 <sign><![CDATA[E84D8BC2331766DD685591F908367FF1]]></sign> 
 <result_code><![CDATA[SUCCESS]]></result_code> 
 <prepay_id><![CDATA[wx20150531020450bb586eb2f70717331240]]></prepay_id> 
 <trade_type><![CDATA[NATIVE]]></trade_type> 
 <code_url><![CDATA[weixin://wxpay/bizpayurl?pr=dNp7omD]]></code_url> 
</xml>

이런 방법으로, code_url을 받게 됩니다

프로그램은 code_url에서 QR 코드를 생성한 다음 이를 사용자에게 스캔하여 제공합니다

2. 사용자 결제

1. 사용자 결제

사용자 결제가 성공한 후 WeChat은 다음 내용이 포함된 XML 알림을 inform_url로 보냅니다.

<xml>
 <appid><![CDATA[wx1d065b0628e21103]]></appid> 
 <bank_type><![CDATA[CFT]]></bank_type> 
 <cash_fee><![CDATA[1]]></cash_fee> 
 <device_info><![CDATA[100001]]></device_info> 
 <fee_type><![CDATA[CNY]]></fee_type> 
 <is_subscribe><![CDATA[N]]></is_subscribe> 
 <mch_id><![CDATA[1237905502]]></mch_id> 
 <nonce_str><![CDATA[gwpdlnn0zlfih21gipjj5z53i7vea8e8]]></nonce_str> 
 <openid><![CDATA[oMNKHuBTW4YWgNGAVQW00tWK6auM]]></openid> 
 <out_trade_no><![CDATA[100001_1433009089]]></out_trade_no> 
 <result_code><![CDATA[SUCCESS]]></result_code> 
 <return_code><![CDATA[SUCCESS]]></return_code> 
 <sign><![CDATA[03EEDE7ADE2ABB7916795F37F19A3D13]]></sign> 
 <time_end><![CDATA[20150531020838]]></time_end> 
 <total_fee>1</total_fee> 
 <trade_type><![CDATA[NATIVE]]></trade_type> 
 <transaction_id><![CDATA[1002750205201505310187709542]]></transaction_id> 
</xml>

notification_url이 수신되면 확인 성공 메시지가 반환됩니다. 위챗 서버

<xml>
 <return_code><![CDATA[SUCCESS]]></return_code>
</xml>

에 이렇게 동적 링크 네이티브가 완성됩니다.

주문 쿼리 인터페이스를 사용하여 주문을 쿼리하고 다음을 반환합니다.

거래 상태: SUCCESS
장치 번호: 100001
사용자 ID: oMNKHuBTW4YWgNGAVQW00tWK6auM
다음을 따를지 여부 공용 계정: N
거래 유형: NATIVE
결제 은행: CFT
총액: 1
현금 쿠폰 금액:
통화 유형: CNY
WeChat 결제 주문 번호: 1002750205201505310187709542
가맹점 주문번호: 100001_1433009089
가맹점 데이터 패키지: 배열
결제 완료 시간: 20150531020837

위는 위챗 결제 동적링크 정보 모음입니다. WeChat 결제를 개발합니다.

위 내용은 WeChat 결제 개발 동적 링크 기본 결제 예시 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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