>  기사  >  백엔드 개발  >  위챗이 개발한 동적링크 네이티브 결제

위챗이 개발한 동적링크 네이티브 결제

*文
*文원래의
2017-12-29 18:22:041721검색

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

참고:

WeChat 결제는 이제 v2 버전과 v3 버전으로 구분됩니다. 2014년 9월 10일 이전에 신청하신 분들은 v2 버전이고, 그 이후에 신청하신 분들은 v3 버전입니다. WeChat Pay V3 버전에는 paySignKey 매개변수가 없습니다. v2에 대한 관련 소개는 Fangbei Studio의 다른 기사를 참조하세요. 이 기사에서는 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>

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

을 호출하여 위 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. 사용자 결제

User 결제가 성공한 후 WeChat은 다음 내용과 함께 inform_url에 XML 알림을 보냅니다.

<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>

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

관련 추천:

PHP WeChat 결제 개발을 위한 WeChat 환불 기능 예시

Laravel WeChat 결제 개발 예시

WeChat 결제 액세스 구현을 위한 5분 튜토리얼

위 내용은 위챗이 개발한 동적링크 네이티브 결제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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