zoukankan      html  css  js  c++  java
  • 微信免充值代金券接口升级

    开通微信免充值代金券需要接口升级,有客户提过要求简单了解了下流程

     准备工作:微信官方下载一份支付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的)。

  • 相关阅读:
    ES6 常用总结(前端开发js技术进阶提升总结)
    web前端之es6对象的扩展
    ES6数组及对象遍历的新增方法 entries(),keys() 和 values()
    关于日期
    最近遇到的几个小东西
    求模
    同步 异步请求的认识
    变量名和函数名声明提升
    机顶盒前端开发小结
    js节点使用 碎片节点
  • 原文地址:https://www.cnblogs.com/xiang-wei/p/9686678.html
Copyright © 2011-2022 走看看