基于微信支付V3(电商收付通)接口
具体问题描述:二级商户进件,资料审核通过后,微信支付返回给平台一个链接:https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=xxxx&sign=xxxxx,请问这个链接如何在小程序里打开让商户完成签约?我试了有个小程序:群接龙可以做到,截图如下:
2021.5.11更新:微信Android8.0.3上方案1已不能正常使用,方案2未知。
2021.5.12更新:验证方案2通过nginx转发跳转也不行,验证群接龙小程序上也更换为二维码方案。
2021.6.2更新:微信Android8.0.6上已恢复正常。
今天我也遇到了,可以通过开放平台授权跳转
通过好几个社区朋友的综合,特地改下实现方式。
1.将签约地址输入在浏览器地址栏,回车会有一个open开头的授权登录域名地址
2.两种方式
(1)将该地址(open.weixin.qq.com/xxx)放在小程序端(webview),在地址中 redirect_uri 替换成动态的签约地址(注意需要转义),其他不需要变,将组合后的地址放在webview src内即可。由于appid是写固定的,建议做成数据库存储,通过接口获取,以防appid有变动,影响线上项目
(2)将该地址(open.weixin.qq.com/xxx)写在配置好的业务域名服务器端。通过小程序端(webview) src 为 业务域名+ redirect_uri=(转义后签约地址),服务端将(open.weixin.qq.com/xxx)中redirect_uri做成动态获取(地址参数获取:转义后签约地址),其他不需要变。重定向组合好的地址即可。其中appid建议做成与第一种方式一样,存储在数据库里。
以上两种方式的区别就是 appid 在哪端动态获取
注意:复制下来的 open.weixin.qq.com/xxx 地址,一定不要更换appid(建议将appid放在数据库存储起来,每次调用都是以读取的方式进行),因为这个是微信支付自己的应用,回调地址也是pay.weixin.xxx(也是签约地址),appid做成动态是为了防止appid有变化。
弊端:不太建议做成嵌入在小程序内的签约方式,因为签约页面底部协议相关页面是打不开的(特地感谢 @whe 提醒)。官方建议做成二维码形式(https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/applyments/chapter3_2.shtml)
2021.5.1以后(也有可能是安卓系统 微信8.0.0版本以后) -> 以上两种方法针对安卓机已作废,请统一更换成二维码形式,感谢贴主@郑旭东
https://pay.weixin.qq.com/wiki/doc/api/wxpay_v2/papay/chapter3_3.shtml
我在v2的文档里找到一个小程序纯签约的文档,但是是扣费服务的,楼主知道二级商户签约和扣费服务的是同一个签约吗?