a>.判断有无钱包方法,
iOS 平台:判断scheme: alipays://是否存在 。
android平台 判断package name是否存在: com.eg.android.AlipayGphone。
判断方法请自行百度“安卓(ios)如何判断app是否安装”。
b>.生成的签约接口(alipay.dut.customer.agreement.page.sign)url整体做一次url encode。
c>.上面的内容拼到链接:”alipays://platformapi/startapp?appId=20000067&url=”之后
d>.app打开上面的链接。
a>.生成的签约接口(alipay.dut.customer.agreement.page.sign)url整体做一次url encode。
b>.上面的内容拼到链接:”alipays://platformapi/startapp?appId=20000067&url=”之后,
然后整体再做一次url encode。
c>.上面的内容拼到链接:” https://render.alipay.com/p/s/i/?scheme=”之后。
d>.浏览器唤起上面的链接。
a>.生成统一下单并支付页面接口(alipay.acquire.page.createandpay) 的url(特殊字符做url encode):
https://mapi.alipay.com/gateway.do?_input_charset=utf-8&agreement_sign_parameters=%7B%22productCode%22%3A%22GENERAL_WITHHOLDING_P%22%2C%22scene%22%3A%22INDUSTRY%7CGAME_CHARGE%22%2C%22externalAgreementNo%22%3A%22201601010001%22%2C%22notifyUrl%22%3A%22http%3A%2F%2Ftest.xxx.com%2Fresult%2Fresult.ashx%22%7D&integration_type=ALIAPP¬ify_url=http%3A%2F%2Ftest.xxx.com%2Fresult.aspx&out_trade_no=201601010001x&partner=2088101568351631&product_code=GENERAL_WITHHOLDING&request_from_url=myapp%3A%2F%2Fresult&return_url=myapp%3A%2F%2Fresult&seller_id=2088101568351631&service=alipay.acquire.page.createandpay&subject=test&total_fee=0.01&sign=53d0e696c8e755199ffa188e3f52b353&sign_type=MD5
b>.上面的链接整体做urlencode。
https%3A%2F%2Fmapi.alipay.com%2Fgateway.do%3F_input_charset%3Dutf-8%26agreement_sign_parameters%3D%257B%2522productCode%2522%253A%2522GENERAL_WITHHOLDING_P%2522%252C%2522scene%2522%253A%2522INDUSTRY%257CGAME_CHARGE%2522%252C%2522externalAgreementNo%2522%253A%2522201601010001%2522%252C%2522notifyUrl%2522%253A%2522http%253A%252F%252Ftest.xxx.com%252Fresult%252Fresult.ashx%2522%257D%26integration_type%3DALIAPP%26notify_url%3Dhttp%253A%252F%252Ftest.xxx.com%252Fresult.aspx%26out_trade_no%3D201601010001x%26partner%3D2088101568351631%26product_code%3DGENERAL_WITHHOLDING%26request_from_url%3Dmyapp%253A%252F%252Fresult%26return_url%3Dmyapp%253A%252F%252Fresult%26seller_id%3D2088101568351631%26service%3Dalipay.acquire.page.createandpay%26subject%3Dtest%26total_fee%3D0.01%26sign%3D53d0e696c8e755199ffa188e3f52b353%26sign_type%3DMD5
c>.如上是就是最终链接,通过scheme唤起。
ios唤起示例:
NSString *urlString=[NSString stringWithFormat:@"alipays://platformapi/startapp?appId=20000067&url=%@",url];
[application openURL:urlString];
安卓唤起示例:
Uri uri=Uri.parse("alipays://platformapi/startapp?appId=20000067&url="+url);
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
由于安全原因,在回跳return_url时,支付宝不支持“支付/签约结果页面->商户H5页面->商户APP”
推荐两种模式:
a>.代扣结果页面->302跳转到商户H5页面
b>.代扣结果页面->scheme方式回跳到商户APP
如何scheme方式唤起商户APP并获取参数,请自行百度。
如:http://blog.csdn.net/csy172775922/article/details/6821651
大致原理,自定义scheme(如android:scheme="myapp"),然后在接口请求参数return_url里定义传输地址(如 myapp://test/xxx)。
TIPS: pc/电视扫码场景唤起代扣支付并签约页面请参考该环节。
目前需由BD单独签约短链接接口(alipay.mobile.short.link.apply),后续会打包在代扣销售方案中。
生成签约并支付页面二维码流程:
1、生成统一下单并支付页面接口(alipay.acquire.page.createandpay) 的url(需要对特殊参数进行urlEncode编码):
https://mapi.alipay.com/gateway.do?_input_charset=utf-8&agreement_sign_parameters=%7B%22productCode%22%3A%22GENERAL_WITHHOLDING_P%22%2C%22scene%22%3A%22INDUSTRY%7CGAME_CHARGE%22%2C%22externalAgreementNo%22%3A%22201601010001%22%2C%22notifyUrl%22%3A%22http%3A%2F%2Ftest.xxx.com%2Fresult%2Fresult.ashx%22%7D&integration_type=ALIAPP¬ify_url=http%3A%2F%2Ftest.xxx.com%2Fresult.aspx&out_trade_no=201601010001x&partner=2088101568351631&product_code=GENERAL_WITHHOLDING&request_from_url=myapp%3A%2F%2Fresult&return_url=myapp%3A%2F%2Fresult&seller_id=2088101568351631&service=alipay.acquire.page.createandpay&subject=test&total_fee=0.01&sign=53d0e696c8e755199ffa188e3f52b353&sign_type=MD5
2、alipay.mobile.short.link.apply接口中open_way参数需设置为WEB。
3、通过短链接接口(alipay.mobile.short.link.apply) 将第1步的url转换为短链接。请求语句如下:(需要对real_url参数做整体urlEncode编码)
https://mapi.alipay.com/gateway.do?service=alipay.mobile.short.link.apply&partner=2088101568351631&_input_charset=utf-8×tamp=2014-08-12 14:33:33&open_way=WEB&real_url=https%3A%2F%2Fmapi.alipay.com%2Fgateway.do%3F_input_charset%3Dutf-8%26agreement_sign_parameters%3D%257B%2522productCode%2522%253A%2522GENERAL_WITHHOLDING_P%2522%252C%2522scene%2522%253A%2522INDUSTRY%257CGAME_CHARGE%2522%252C%2522externalAgreementNo%2522%253A%2522201601010001%2522%252C%2522notifyUrl%2522%253A%2522http%253A%252F%252Ftest.xxx.com%252Fresult%252Fresult.ashx%2522%257D%26integration_type%3DALIAPP%26notify_url%3Dhttp%253A%252F%252Ftest.xxx.com%252Fresult.aspx%26out_trade_no%3D201601010001x%26partner%3D2088101568351631%26product_code%3DGENERAL_WITHHOLDING%26request_from_url%3Dmyapp%253A%252F%252Fresult%26return_url%3Dmyapp%253A%252F%252Fresult%26seller_id%3D2088101568351631%26service%3Dalipay.acquire.page.createandpay%26subject%3Dtest%26total_fee%3D0.01%26sign%3D53d0e696c8e755199ffa188e3f52b353%26sign_type%3DMD5
4、上述请求,会得到一个短链接url。通过生成二维码的工具包如(BarCode4j、zxing等)将该短链接转换为二维码。
5、用支付宝钱包APP扫该二维码后唤起签约并支付页面。