调用说明

调用的主要原理是:通过拉起支付宝APP,然后调用支付宝内said为10000007的扫码功能来发起支付;

步骤说明

第一步:调用《4.3.扫码支付交易》接口,取到下单成功返回的code_url 字段值;

第二步:在接口返回的code_url字段前拼接上固定前缀alipays://platformapi/startapp?saId=10000007&qrcode=组成jumpUrl;

第三步:并在H5/APP内,通过打开第三方APP的方式打开jumpUrl;

第四步:获取终态,客户支付完成后翼码会将支付结果推送到客户异步地址,如果长时间未收到异步结果可以调用《4.4.支付查询交易》查询交易状态;

调用示例

  1. 《4.3.扫码支付交易》返回报文为

    1. ...
    2. "code_url": "https://qr.alipay.com/bax05597yh61m7lrqhgg00a0"
    3. ...
  2. 取接口返回code_url字段,拼接上固定前缀组成jumpUrl

    1. alipays://platformapi/startapp?saId=10000007&qrcode=https://qr.alipay.com/bax05597yh61m7lrqhgg00a0
  3. 在H5页面内,跳转打开jumpUrl或直接跳转接口返回的code_url都可以实现;

    在APP内,通过打开第三方APP的方式打开jumpUrl实现;

    Android APP 示例代码:

    1. // 固定前缀
    2. String topic = "alipays://platformapi/startapp?saId=10000007&qrcode=";
    3. // 从《4.3.扫码支付交易》获取的code_url参数
    4. String codeUrl = "https://qr.alipay.com/bax05597yh61m7lrqhgg00a0"
    5. // 字符串拼接
    6. String jumpUrl = topic + codeUrl;
    7. // 按以上示例拼接得出结果
    8. // jumpUrl 为 alipays://platformapi/startapp?saId=10000007&qrcode=https://qr.alipay.com/bax05597yh61m7lrqhgg00a0
    9. Intent intent = new Intent();
    10. intent.setAction("android.intent.action.VIEW");
    11. // jumpUrl 为先前示例中拼装的 url
    12. Uri contentUrl = Uri.parse(jumpUrl);
    13. intent.setData(contentUrl);
    14. activity.startActivity(intent);

    iOS APP 示例代码:

    1. [[UIApplication sharedApplication]openURL:[NSURL URLWithString: jumpUrl]];

注意事项

  1. 系统会弹出是否允许打开支付宝,点击允许,跳转支付宝进行支付,此种方式没有考虑用户没有装支付宝的情况。

  2. 如需考虑未安装支付宝的情况,APP端可使用webview,加载《4.3.扫码支付交易》返回的code_url链接(例:https://qr.alipay.com/bax05597yh61m7lrqhgg00a0) 此种方式,如未安装支付宝客户端,会跳转到支付宝下载页面,引导用户安装下载。

  3. 以上部分是在APP为原生开发的前提下,RN的方式参考以下示例,Union App开发的可参考以上实现思路来实现,翼码无具体代码案例。

  4. React Native方式可参考如下

    1. linkurl = 'alipays://platformapi/startapp?saId=10000007&qrcode='+ {codeUrl}
    2. Linking.openURL(linkurl);