微信免充值代金券接口升級


開通微信免充值代金券需要接口升級,有客戶提過要求簡單了解了下流程

 准備工作:微信官方下載一份支付api demo

https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1

1.需要獲取商戶沙箱密鑰,主要是代替原有的支付密鑰請求接口

獲取方法

 獲取密鑰接口:https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey

我們可以直接在微信官方https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1

設置簽名請求參數,直接用《微信支付接口簽名校驗工具》生成xml

var result = HttpService.Post(@"<xml>
<mch_id><![CDATA[商戶id]]></mch_id>
<nonce_str><![CDATA[隨機數]]></nonce_str>
<sign>AB2454DCD76053F18974D5133BB9742F</sign>
</xml>", "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey", false, 6);

如果成功會返回一個密鑰  沒有成功自己檢測商戶信息是否有問題

 

2.修改文件Config.cs文件配置為自己的  回調地址必須為自己的不然接收不到信息

3.測試用例

下單:https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder
訂單查詢:https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery
退款:https://api.mch.weixin.qq.com/sandboxnew/pay/refund
退款查詢:https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery
下載對賬單:https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill

我這用的是掃碼測試需要修改api:https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder

可以直接在微信demo里面操作

這里面金額是需要除100后的金額,

這里APPID是沒有不用關注

3.回調

修改后直接請求成功后會直接響應到回調地址 ,返回的二維碼掃碼是‘碼已過期,請重新生成‘不用管 只看回調返回的數據

微信說明上也有這句:驗證商戶具備正確解析及識別免充值代金券字段的能力。

如下就是我請求返回的結果  已經很清楚了  字段說明參考文檔

我設置的5.52 優惠coupon_fee =1就是0.01 settlement_total_fee 551就是5.51 

<xml>
  <openid><![CDATA[sandboxopenid]]></openid>
  <trade_type><![CDATA[NATIVE]]></trade_type>
  <coupon_fee><![CDATA[1]]></coupon_fee>
  <cash_fee_type><![CDATA[CNY]]></cash_fee_type>
  <nonce_str><![CDATA[33d94923bbb44a7284439268b62322bc]]></nonce_str>
  <time_end><![CDATA[20180921113430]]></time_end>
  <err_code_des><![CDATA[SUCCESS]]></err_code_des>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <mch_id><![CDATA[1360830802]]></mch_id>
  <settlement_total_fee><![CDATA[551]]></settlement_total_fee>
  <sign><![CDATA[C25C1D28E3E0AA75868A2C97C2FBBF8A]]></sign>
  <cash_fee><![CDATA[551]]></cash_fee>
  <coupon_id_0><![CDATA[123456]]></coupon_id_0>
  <coupon_fee_0><![CDATA[1]]></coupon_fee_0>
  <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0>
  <is_subscribe><![CDATA[Y]]></is_subscribe>
  <return_msg><![CDATA[OK]]></return_msg>
  <fee_type><![CDATA[CNY]]></fee_type>
  <bank_type><![CDATA[CMC]]></bank_type>
  <attach><![CDATA[test1]]></attach>
  <device_info><![CDATA[sandbox]]></device_info>
  <out_trade_no><![CDATA[136083080220180921113426239]]></out_trade_no>
  <result_code><![CDATA[SUCCESS]]></result_code>
  <total_fee><![CDATA[552]]></total_fee>
  <appid><![CDATA[wxfe5ddf2ec8db03c3]]></appid>
  <coupon_count><![CDATA[1]]></coupon_count>
  <transaction_id><![CDATA[4301227903220180921113430575395]]></transaction_id>
  <err_code><![CDATA[SUCCESS]]></err_code>
</xml>

其他請求同理,參考示例修改參數

注意金額不能有小數

沙箱支付金額(1)無效,請檢查需要驗收的case——需根據測試用例的金額支付,如訂單金額 5.52 元,其中 0.01 元使用免充值券,實際支付 5.51 元。

支付和退款的測試用例金額是不一樣的,請重新下單進行請求(即下兩個訂單,一個是測試用例1003的,一個是測試用例1004的)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM