微信中直接唤起支付宝商家付款

一、需求

在微信中访问业务H5页面,通过H5页面进行唤起支付宝商家付款进行合约签订

二、结论

1. IOS端可以做到直接在微信中唤起支付宝,会提示一个弹窗然后进行跳转

2. Android中会跳转到支付宝的提示页,然后需要转到浏览器进行打开

三、实现方式

1. 调用支付宝的商家付款签约接口,读取签约返回的内容,里面有签约地址,内容类似

https://openapi.alipay.com/gateway.do?alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=12021004130639609&biz_content=%7B%22access_params%22%3A%7B%22channel%22%3A%22ALIPAYAPP%22%7D%2C%22agreement_effect_type%22%3A%22DIRECT%22%2C%22external_agreement_no%22%3A%222024040709110931266%22%2C%22period_rule_params%22%3A%7B%22execute_time%22%3A%222024-04-07%22%2C%22period%22%3A30%2C%22period_type%22%3A%22DAY%22%2C%22single_amount%22%3A%220.01%22%2C%22total_amount%22%3A%220.12%22%2C%22total_payments%22%3A12%7D%2C%22personal_product_code%22%3A%22CYCLE_PAY_AUTH_P%22%2C%22product_code%22%3A%22GENERAL_WITHHOLDING%22%2C%22sign_scene%22%3A%22INDUSTRY%7CDEFAULT_SCENE%22%2C%22third_party_type%22%3A%22PARTNER%22%7D&charset=UTF8&format=json&method=alipay.user.agreement.page.sign&notify_url=http%3A%2F%2F111.231.77.235%3A9080%2Fmgrapi%2Fga....

2.执行签约地址头的替换,参考以下java代码,构造出来的returnSignUrl 就是前端真实访问的地址

String signUrl = "读取到的签约地址";
String signParams = signUrl.replace("https://openapi.alipay.com/gateway.do?", "");
try {
    // returnSignUrl 构造出签约地址,前端读取这个地址直接用location.href加载就可以
    String returnSignUrl = "https://ulink.alipay.com/?scheme="+URLEncoder.encode(
            "alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params=",
            "UTF-8")
    + URLEncoder.encode(URLEncoder.encode(signParams, "UTF-8"), "UTF-8"));
} catch (UnsupportedEncodingException e) {
   log.error("sign UnsupportedEncodingException error", e);
}

备注

加https://ulink.alipay.com/ 头的方案非官方标准方案,后期可能会失效,目前是可以使用
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风雨瑟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值