微信支付相关

微信支付相关

近几天一直与各种支付打交道,关于微信支付方面,包括支付,退款,签约,代扣等方面,遇到了一些问题,在此汇总梳理并Mark一下


微信代扣:

首先是代扣相关的api文档
在这里插入图片描述
嗨!这,这那~ 点这里:扣费服务-直连模式.

然后简单说说微信代扣相关,微信代扣需要先与用户进行签约,签约之后可以调用微信的代扣接口进行扣费,相关签约可以在支付中签约,也可以单独进行签约(根据相关业务需求而定)

1、调用支付中签约接口 (需要协议模板id 并且将解约回调地址配置在申请的模板上)

2、调用支付中签约接口并签约成功后 在签约回调中会返回contract_id 需要保存 以便后续查询 代扣时使用

3、代扣 需要contract_id

4、涉及的相关回调
(1)微信签约回调需要验签 暂时只支持MD5
(2)微信解约回调需要验签 暂时只支持MD5
(3)微信代扣回调需要验签 暂时只支持MD5

5、部分代扣相关接口仅支持MD5加密,相关必填字段要与接口文档完全一致
以签约查询接口为例(我开始就没有注意这些细节,以此为戒)
(1)签约查询接口加密方式要使用MD5
(2)签约查询接口中通用参数没有nonce_str
(3)签约查询接口中version 必填 为固定值1.0


微信退款:

然后说说微信退款

1、微信退款需要证书

2、微信退款支持部分退款

3、重点说说,微信退款回调

微信退款回调返回给用户的信息是加密在req_info中需要将req_info进行解密才可以提取相关内容(解密方式如下)

解密方式
解密步骤如下:

1)、对加密串A做base64解码,得到加密串B;

2)、对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置 )

3)、用key*对加密串B做AES-256-ECB解密(PKCS7Padding)

相关解密可以参考
lAES-256-ECB PKCS7Padding 解密 微信退款接口: https://blog.csdn.net/hjh15827475896/article/details/92805191.

另外
因为解密为PKCS7Padding 需要替换 java 中 local_policy.jar
US_export_policy.jar 解除限制否则会报
java.security.InvalidKeyException: Illegal key size or default parameters

对应解决办法去oracle官网下载 local_policy.jar,US_export_policy.jar

JDK8 jar包下载地址http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html).
下载后替换掉本地的包,提前把本地的包备份
\jre\lib\security\下
local_policy.jar
US_export_policy.jar

未完待续

相关参考
lAES-256-ECB PKCS7Padding 解密 微信退款接口https://blog.csdn.net/hjh15827475896/article/details/92805191.
java 微信退款结果通知解密https://blog.csdn.net/qq_38812189/article/details/81745964.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值