友支付
友支付,是帮助友好速搭的应用开发者,在应用中提供增值业务时,可以直接使用的代收款设施。使用流程图如下:
使用过程如下
1.启用友支付
登录友好速搭合作伙伴后台,在左侧点击友支付,可以看到用于支付的 AppId 与 AppKey
请妥善保管 AppId 与 AppKey,该两项用于加密支付参数以及验证支付结果.
2.准备支付参数
字段名 | 说明 | 必须 |
---|---|---|
appid | 在友好速搭合作伙伴后代获取到的友支付 AppId | 是 |
order_no | 该笔支付请求的编号 | 是 |
amount | 支付金额,单位为分 | 是 |
pay_type | 支付方式,友支付支持多种支付方式,具体列表见附录 | 是 |
bank_code_id | 银行代码 | 见附录 |
notify_url | 通知地址 | 是 |
expired_at | 支付过期时间,格式为 YYYY-MM-DDTHH:mm:ss | 是 |
sign | 签名 | 是 |
拼接后的参数如下
appid=B4O4MQ****&order_no=75b1559856a240a88****&amount=1&pay_type=alipay¬ify_url=http://yournotifyurl.com&expired_at=2016-03-07T11:04:46&sign=98b35bfa2173cc57d0db8f90c902a7ec
3.跳转到支付页面
拼接好支付相关参数之后,就可以通过友支付跳转至相关支付页面
https://www.youhaosuda.com/youpay?appid=B4O4MQ****&order_no=75b1559856a240a88****&amount=1&pay_type=alipay¬ify_url=http://yournotifyurl.com&expired_at=2016-03-07T11:04:46&sign=98b35bfa2173cc57d0db8f90c902a7ec
4.接收通知
在用户完成支付后,友支付会发起 POST 请求至参数中 notify_url 所填的地址,其参数如下:
字段名 | 说明 |
---|---|
appid | 在友好速搭合作伙伴后代获取到的友支付 AppId |
order_no | 该笔支付请求的编号 |
amount | 支付金额,单位为分 |
pay_type | 用户所选择的支付方式 |
bank_code_id | 银行代码 |
notify_url | 通知地址 |
expired_at | 支付过期时间,格式为 YYYY-MM-DDTHH:mm:ss |
is_success | 支付是否成功 |
sign | 签名 |
如:
http://yournotifyurl.com/?appid=B4O4MQ****&order_no=75b1559856a240a88****&amount=1&is_success=true&pay_type=alipay¬ify_url=http://yournotifyurl.com&expired_at=2016-03-07T12%3A11%3A27&sign=5e9613c93ffe08c36fef675b64a277d5
为了验证该次请求是否是友支付发出,你需要剔除 sign 参数后,用其它参数与 AppKey 字符串拼接后的 MD5 结果与 sign 的值做匹配,若一致,则说明该次请求是友支付发起。
附录
签名
跳转支付和接受支付回调都需要用到签名,签名生成步奏如下:
筛选参数。如果是回调则要剔除sign参数,存在空值的参数必须剔除。
排序参数。在参数集合中,根据参数(不是参数对应的值)的第一个字符的键值ASCII码递增排序,如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
拼接参数。在参数集合中,把每个参数及其值组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来。例如:
amount=1&appid=LQHENL4ILNQ1&expired_at=2016-4-2T14:19:00¬ify_url=http://yournotifyurl.com&order_no=TEST0001732&pay_type=wppayf5e4572a00f54253b08b02066a3d5401
把 AppKey 拼接在待签名字符串尾部。例如:
amount=1&appid=LQHENL4ILNQ1&expired_at=2016-4-2T14:19:00¬ify_url=http://yournotifyurl.com&order_no=TEST0001732&pay_type=wppayf5e4572a00f54253b08b02066a3d5401
调用md5加密函数,对已经与MD5密钥拼接好的新字符串做加密运算。例如,上一步加密结果:
894da0b00087088ad10f8544d5477166
支持的支付方式
支付方式 | 值 | 必须银行代码 |
---|---|---|
微信支付 | wppay | × |
支付宝(即时到帐) | alipay | × |
支付宝(手机网站) | alipay_wap_user | × |
支付宝(网银直联) | alipay_bank | √ |
支持的银行代码
银行 | 代码 | 支持支付宝 | 支持财付通 |
---|---|---|---|
中国银行 | 1 | √ | √ |
中国工商银行 | 2 | √ | √ |
中国建设银行 | 3 | √ | √ |
中国农业银行 | 4 | √ | √ |
招商银行 | 5 | √ | √ |
上海浦东发展银行 | 6 | √ | √ |
兴业银行 | 7 | √ | √ |
广东发展银行 | 8 | √ | × |
中国民生银行 | 9 | √ | √ |
中信银行 | 10 | √ | √ |
杭州银行 | 11 | √ | × |
中国光大银行 | 12 | √ | √ |
上海银行 | 13 | √ | √ |
宁波银行 | 14 | √ | × |
平安银行 | 15 | √ | √ |
北京农村商业银行 | 16 | √ | × |
富滇银行 | 17 | √ | × |
中国邮政储蓄银行 | 18 | √ | √ |
交通银行 | 19 | × | √ |
华夏银行 | 20 | × | √ |
北京银行 | 21 | × | √ |