收藏
回答

小程序怎么直接打开电商平台二级商户开户签约页面?

基于微信支付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上已恢复正常。

最后一次编辑于  2021-06-02
回答关注问题邀请回答
收藏

2 个回答

  • 董谨诚
    董谨诚
    2020-10-17

    今天我也遇到了,可以通过开放平台授权跳转

    通过好几个社区朋友的综合,特地改下实现方式。

    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版本以后) -> 以上两种方法针对安卓机已作废,请统一更换成二维码形式,感谢贴主@郑旭东

    2020-10-17
    有用 2
    回复 9
    • 郑旭东
      郑旭东
      2020-10-19
      非常感谢分享。我之前已通过第一种方案实现。还有个问题,签约成功页跳回小程序也是不顺畅的,成功页的确定按钮点了没反应。目前我通过监听web-view的onload,发现onload被触发了两次,就认为是签约成功了,立即强行跳回小程序。我始终认为电商收付通得提供更通用的接口,而不是用url的方式,让小程序等其他第三方调用更方便。
      2020-10-19
      回复
    • 董谨诚
      董谨诚
      2020-10-19回复郑旭东
      我发现群接龙是直接不跳转签约成功页面,反而类似拦截阻止跳转,弹出toast再跳回小程序,我不建议你判断触发两次,因为下面有两个协议页面,这样以来 你不确定用户点击了哪个。让后台出一个二级商户申请状态接口,根据状态来跳转。有机会可以微信聊: 15275905257
      2020-10-19
      1
      回复
    • 郑旭东
      郑旭东
      2020-10-20
      我观察过一次它表现出来的是跳转过去再弹toast的。你说的这个是个好方法,我去试试。onload是之前没想到更好的办法的办法。
      2020-10-20
      回复
    • 自然
      自然
      2020-10-30
      redirect_uri不应该是设置网页授权域名才可以成功重定向吗?网页授权域名无法填写pay.weixin.com
      2020-10-30
      1
      回复
    • 董谨诚
      董谨诚
      2020-12-03回复自然
      redirect_uri 如果你要做商户进件,其中会返回一个地址,这个地址是需要页面自动授权登录的。其实借助了 open.weixin.qq.com 这个授权机制 而且 放在webview中也不会提示 业务域名限制问题,恰好可以实现
      2020-12-03
      回复
    查看更多(4)
  • (ー_ー)
    (ー_ー)
    2021-01-19

    https://pay.weixin.qq.com/wiki/doc/api/wxpay_v2/papay/chapter3_3.shtml

    我在v2的文档里找到一个小程序纯签约的文档,但是是扣费服务的,楼主知道二级商户签约和扣费服务的是同一个签约吗?

    2021-01-19
    有用
    回复 3
    • 郑旭东
      郑旭东
      2021-01-19
      不一样吧,我文中的是V3电商收付通相关接口。
      2021-01-19
      回复
    • (ー_ー)
      (ー_ー)
      2021-01-19回复郑旭东
      哦哦,谢谢楼主,我刚开始接微信支付,webview打开open.weixin.qq.com的方式是会有弊端 ‘签约页面底部协议相关页面是打不开的’ 吗?有解决方案吗?
      2021-01-19
      回复
    • 郑旭东
      郑旭东
      2021-01-19
      我都没去点过这个,主流程勉强能跑通已经阿弥陀佛。webview总归不是最好的解决办法,等微信支付官方解决方案吧。
      2021-01-19
      回复
登录 后发表内容
问题标签