Lien dynamique Paiement natif développé par WeChat

*文
Libérer: 2023-03-18 20:12:01
original
1783 Les gens l'ont consulté

Cet article présente principalement le processus de mise en œuvre du paiement natif basé sur le code QR de lien dynamique sous le paiement WeChat, dans l'espoir d'aider les partenaires qui développent le paiement WeChat.

Remarque :

Le paiement WeChat est désormais divisé en version v2 et version v3. Ceux qui ont postulé avant le 10 septembre 2014 seront en version v2, et ceux qui ont postulé. après cela sera en version v3. La version V3 de WeChat Pay n'a pas le paramètre paySignKey. Pour une introduction connexe à la v2, veuillez vous référer à d'autres articles de Fangbei Studio. Cet article présente WeChat Pay v3.

1. Générer des informations sur le produit

Pendant le processus de paiement par lien dynamique, la transaction du produit est d'abord générée, puis la transaction de paiement est effectuée.

1. Préparation des informations sur le produit

Définir principalement le nom et le prix du produit, ainsi que le numéro de transaction. Le code est le suivant.

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");//设备号
Copier après la connexion

Les paramètres ci-dessus sont finalement encapsulés dans des paramètres XML similaires aux suivants

<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>
Copier après la connexion

2. Appelez la demande de paiement unifiée

. pour envoyer le XML ci-dessus à l'interface de paiement unifiée

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

Obtenez les données XML suivantes

<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>
Copier après la connexion

De cette façon, vous obtenez un code_url

Le programme génère un code QR à partir du code_url, puis le fournit à l'utilisateur pour qu'il le scanne

Paiement de l'utilisateur

1. Paiement de l'utilisateur

Une fois le paiement de l'utilisateur réussi, WeChat enverra une notification XML à notify_url avec le contenu suivant

<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>
Copier après la connexion

Après réception de notification_url, une confirmation le message de réussite sera renvoyé au serveur WeChat

<xml>
 <return_code><![CDATA[SUCCESS]]></return_code>
</xml>
Copier après la connexion

De cette manière, un lien dynamique natif est complété.

Recommandations associées :

Exemple de fonction de remboursement WeChat du développement de paiements PHP WeChat

Exemple de développement de paiement Laravel WeChat

Tutoriel de 5 minutes pour implémenter l'accès aux paiements WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal