본 글에서는 위챗 결제를 개발하는 파트너에게 도움이 되기를 바라며, 위챗 결제의 동적링크 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 환불 기능 예시
위 내용은 위챗이 개발한 동적링크 네이티브 결제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!