开发者社区> 问答> 正文

#支付宝 周期扣款无线端如何唤起签约?

周期扣款无线端如何唤起签约?

展开
收起
保持可爱mmm 2020-05-07 09:22:32 3569 0
1 条回答
写回答
取消 提交回答
  • 由于周期扣款分为“先签约,后代扣”场景与“支付后签约”场景,因此无线端唤起周期扣款的签约页面方式有2种。 一、先签约,后代扣

    文档详见【无线端唤起签约说明】 1、判断有无钱包

    (1)先判断客户端是否安装有钱包,有则打开钱包,进入签约页面。方法如下:

    android平台判断package name是否存在: com.eg.android.AlipayGphone。

    iOS平台:判断scheme: alipays://是否能打开;

    注意:iOS 9 以上版本需要将alipays配置在项目的 LSApplicationQueriesSchemes中,千万不要配置在 URL Schemes 中。

    1.png

    2、数据encode转义

    签约接口(alipay.user.agreement.page.sign)的参数整体做一次encode(UTF-8来encode)。

    以接口返回数据为例

    (1)先生成支付宝个人协议页面签约接口(alipay.user.agreement.page.sign)的url,如果开发者使用开放平台官方 SDK则无需对参数进行 encode处理,否则需要对每个参数对应的 value 做一次encode(UTF-8);

    周期扣款先签约后代扣场景,调用sdk生成请求参数链接,详见【pageExecute()方法如何get请求】。

    (2)将 https://openapi.alipay.com/gateway.do? 后面的所有参数作为入参,做一次整体的 encode(UTF-8),如下段代码中所示:

    alipay_sdk%3Dalipay-sdk-java-3.7.89.ALL%26app_id%3D2014**********22%26biz_content%3D%257B%2522personal_product_code%2522%253A%2522CYCLE_PAY_AUTH_P%2522%252C%2522access_params%2522%253A%257B%2522channel%2522%253A%2522ALIPAYAPP%2522%257D%252C%2522period_rule_params%2522%253A%257B%2522period_type%2522%253A%2522DAY%2522%252C%2522period%2522%253A7%252C%2522execute_time%2522%253A%25222020-01-01%2522%252C%2522single_amount%2522%253A10.99%257D%257D%26charset%3Dutf-8%26format%3Djson%26method%3Dalipay.user.agreement.page.sign%26notify_url%3Dhttp%253A%252F%252F114.55.81.185%252Fopendevtools%252Fnotify%252Fdo%252F4056414d-195d-4278-812c-45bd41eeed99%26return_url%3Dhttps%253A%252F%252Fwww.baidu.com%252F%26sign%3DiNJuXWlsCGkqukz9bxfAQqU3RF9gH%252BThHFHibFIcSDEEesqZq5hkDBq9vc3PORTUqhQ2WwZRhsI4nCV%252FYo6bLY%252Fw8RhckWrcpqHmO%252FZ3iT2z8CjWh2sQcTKPpROyb649NQ%252F8TqTgf5KQdFYGnpnwrzvsvIHu71YWhZBZV4RhLBajDS8Ez0qMxvDHrZIihhLn9trVbYr0cMFTMwm4mCD60jJv5Awo5l8LsALipQi744%252FhJ9sgESh0DrZ5It%252FECtHuhbSUYObPvrH%252Bl0rLoyeoDabkmcIjzXm5D%252Bx%252BtzGR2Q5x5izlG7rHEhrUt6coSEc7QFO9DkieYDlzWEapagzfuA%253D%253D%26sign_type%3DRSA2%26timestamp%3D2020-01-03%2B10%253A19%253A11%26version%3D1.0

    3、拼接alipays短链接

    步骤2的内容拼到链接(该链接里面的appid为固定值,不可修改):

    alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params=之后。

    拼接示例如下:

    alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params=alipay_sdk%3Dalipay-sdk-java-3.7.89.ALL%26app_id%3D2014**********22%26biz_content%3D%257B%2522personal_product_code%2522%253A%2522CYCLE_PAY_AUTH_P%2522%252C%2522access_params%2522%253A%257B%2522channel%2522%253A%2522ALIPAYAPP%2522%257D%252C%2522period_rule_params%2522%253A%257B%2522period_type%2522%253A%2522DAY%2522%252C%2522period%2522%253A7%252C%2522execute_time%2522%253A%25222020-01-01%2522%252C%2522single_amount%2522%253A10.99%257D%257D%26charset%3Dutf-8%26format%3Djson%26method%3Dalipay.user.agreement.page.sign%26notify_url%3Dhttp%253A%252F%252F114.55.81.185%252Fopendevtools%252Fnotify%252Fdo%252F4056414d-195d-4278-812c-45bd41eeed99%26return_url%3Dhttps%253A%252F%252Fwww.baidu.com%252F%26sign%3DiNJuXWlsCGkqukz9bxfAQqU3RF9gH%252BThHFHibFIcSDEEesqZq5hkDBq9vc3PORTUqhQ2WwZRhsI4nCV%252FYo6bLY%252Fw8RhckWrcpqHmO%252FZ3iT2z8CjWh2sQcTKPpROyb649NQ%252F8TqTgf5KQdFYGnpnwrzvsvIHu71YWhZBZV4RhLBajDS8Ez0qMxvDHrZIihhLn9trVbYr0cMFTMwm4mCD60jJv5Awo5l8LsALipQi744%252FhJ9sgESh0DrZ5It%252FECtHuhbSUYObPvrH%252Bl0rLoyeoDabkmcIjzXm5D%252Bx%252BtzGR2Q5x5izlG7rHEhrUt6coSEc7QFO9DkieYDlzWEapagzfuA%253D%253D%26sign_type%3DRSA2%26timestamp%3D2020-01-03%2B10%253A19%253A11%26version%3D1.0

    4、在商户app客户端打开链接。

    步骤3返回示例就是最终链接,通过scheme唤起。

    测试时,可将该链接放在浏览器测试,唤起支付宝钱包打开签约页面。

    二、支付后签约

    支付后签约使用sdkExecute方法,直接返回请求字符串。

    在客户单唤起签约页面方式和app支付客户端代码一致,详见【app客户端demo】。

    客户端代码说明详见【客户端 Android 集成流程】和【客户端 iOS 集成流程】。

    注意事项

    先签约后代扣在无线端唤起签约时报错,建议按照以下方式检查:

    先检查接口返回的请求参数链接是否正常,是否可以唤起签约页面。

    如果可以正常唤起签约页面,说明是转义过程中存在问题,仔细检查步骤流程。

    如果不可以唤起签约页面,说明在接口生成请求参数时就已经设置失败,根据页面报错检查即可。

    2020-05-07 11:52:32
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
余额宝超大规模基金文件处理——分布式调度组件:余额宝大白组件 立即下载
直达客户 贴身服务——通信在快递场景中的应用 立即下载
变革:支付宝的支付进化论 立即下载