一、异步通知
1、因为开发的是一款saas系统,会对应很多个微信支付,可能一个服务站点有多个微信商户或多个appid的应用,现在V3接口异步回调中给到的数据是加密的,无法直接获取appid,需要进行解密后才能获取;而解密需要商户秘钥,而获取商户秘钥需要appid,这个无解(致命问题,现在还是改用了v2接口)。
2、商户证书和平台证书的使用,完全没有看明白,有点云里雾里的。
二、前端拉起支付
小程序、App、公众号,他们拉起支付的参数命名和参数一致性让人很头疼,比如noncestr字段,在App中是小写的,而在小程序是驼峰命名的(nonceStr)。
三、SDK问题
SDK没有全面完整的示例和更新不及时,没有python和.net(.net framework、.net core/.net5)相关SDK。
#1上列的,我理解应该是mchid的吧,apiv3通知头上有个平台序列号,这个序列号,据官方同学反馈,是全局唯一的,即:不同商户号是不同的通知Wechatpay-Serial,你可以通过apiv3通知的header[‘Wechatpay-Serial’] 就能找到对应的mchid,对于集中式SAAS平台来说,完全可以这么做;
#2 看官方 APIv3证书与密钥使用说明 时序图,如果还云里雾里,可以到 https://wj.qq.com/s2/9261092/0bbd/ 这个地址去投诉(比如:用一个时序图就想糊弄开发者,那么多场景,能不能清晰的按场景说明证书及密钥使用方法);
#3 虽然社区搜索很肉,但是还是能搜索到社区内许多python/c#的sdk实现,可以尝试下社区搜索;
python开发者可以使用已经封装好的“微信支付 V3 API Python SDK”
https://github.com/minibear2021/wechatpayv3
最简单的方式,平台走服务商模式支付,所有商家统一在服务商下申请商户,异步通知统一走服务商模式