支付功能模块
赠送微信和支付宝DEMO,供使用和参考 网盘链接:https://pan.baidu.com/s/1YjI8gRcVhlFAXm1HGGBvsg 提取码:emn6
支持支付宝、微信二个平台支付系统。实现App内支付调用并回调到应用内。JSAPI无需引放任何js文件直接调用。
BSL.Pay('data', 'payType', 'callbackMethod')
调用微信支付宝App软件完成支付。
| 参数 | 必填 | 说明 |
|---|---|---|
| data | 是 | 定单数据,格式为字符串。 |
| payType | 是 | 调启支付,固定值。 WEIXIN(微信支付),ALIPAY(支付宝支付) |
| callbackMethod | 是 | 回调的JS函数 |
支付回调码
所有支付回调码都是对应平台直接返回数据,App不做任何处理直接返回到回调js函数内。
| 平台 | 编码 | 说明 |
|---|---|---|
| 微信 | 0 | 成功 |
| -1 | 普通错误类型 | |
| -2 | 用户点击取消并返回 | |
| -3 | 发送失败 | |
| -4 | 授权失败 | |
| -5 | 微信不支持 | |
| 支付宝 | 9000 | 订单支付成功 |
| 8000 | 正在处理中,支付结果未知(可能已成功),请查询商户订单列表中的支付状态 | |
| 4000 | 重复请求 | |
| 6001 | 用户中途取消 | |
| 6002 | 网络连接出错 | |
| 6004 | 支付结果未知(可能已成功),请查询商户订单列表中的支付状态 | |
| 其他 | 其他支付错误 |
微信data数据
必须为{"param1":"val1","param2":"val2"},中间为双引号。统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。
微信官方帮助:统一下单、业务流程
| 参数 | 必填 | 说明 |
|---|---|---|
| appid | 是 | 微信开放平台审核通过的应用APPID |
| partnerid | 是 | 微信支付分配的商户号 |
| package | 是 | 固定值:Sign=WXPay |
| noncestr | 是 | 随机字符串,不长于32位。微信开放平台随机数生成算法 |
| timestamp | 是 | 时间戳,微信开放平台接口规则-参数规定 |
| prepayid | 是 | 微信返回的支付交易会话ID |
| sign | 是 | 签名,微信开放平台接口规则-参数规定 |
data格式示例:
{"appid":"wxb4****a1","partnerid":"13****001","package":"Sign=WXPay","noncestr":"4d18***72","timestamp":1468313807,"prepayid":"wx201***323458", "sign":"F4B38***4B896E1"}
支付宝data数据
支付宝data具体各值生成方法,请参考蚂蚁开放平台帮助,不需要base64编码。支付宝错误码,支付宝调起后无法支付对应错误码来修改你的程序。
蚂蚁官方帮助:参数说明、错误码
| 参数 | 必填 | 说明 |
|---|---|---|
| alipay_sdk | 否 | 固定值 |
| app_id | 是 | 支付宝分配给开发者的应用ID |
| biz_content | 是 | 业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
| charset | 是 | 请求使用的编码格式,如utf-8,gbk,gb2312等 |
| format | 否 | 仅支持JSON |
| method | 是 | 接口名称 |
| notify_url | 是 | 支付宝服务器主动通知商户服务器里指定的页面http/https路径。建议商户使用https. |
| sign_type | 是 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 |
| timestamp | 是 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
| version | 是 | 调用的接口版本,固定为:1.0 |
| sign | 是 | 商户请求参数的签名串,详见签名 |
data格式示例:
"app_id=2****50&biz_content=2s******D&charset=UTF-8&format=json&method=alipay.trade.app.pay ¬ify_url=******&sign_type=RSA2×tamp=2017-02-16 &version=1.0&sign=S******D"
微信快捷支付
BSL.WXPay(ProductName, Desicript, Price, OuttradeNo,attach, callbackMethod)
微信的快捷支付功能可以免去用户统一下单流程。使用微信的快捷支付需要先填写微信的支付配置。支付完成后自动转入设置的网址。
功能配置:高级配置(API)>> 支付
| 参数 | 必填 | 说明 |
|---|---|---|
| ProductName | 是 | 商品描述交易字段格式根据不同的应用场景按照以下格式: APP——需传入应用市场上的APP名字-实际商品名称,天天爱消除-游戏充值。 |
| Desicript | 否 | 商品详细描述,对于使用单品优惠的商户,改字段必须按照规范上传,详见“单品优惠参数说明” |
| Price | 是 | 订单总金额,单位为分,详见"支付金额" |
| OuttradeNo | 是 | 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见"商户订单号" |
| attach | 否 | 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 |
| callbackMethod | 是 | 回调的JS函数,返回数据为提示信息。如:填写的签名错误。 |
常见问题
微信在苹果能正常支付,安卓不能支付?
1、没有用微信开放平台的值;
2、微信开放平台的安卓的包名与签名填写错误;
完全不能使用?调起微信闪一下退出?
1、微信data数据错误
2、没有用微信开放平台
3、微信开放平台的包名和签名配置与App不符。
苹果可以调起微信,显示解析失败?
注意数据的大小写字符;
没有任何反映?
没有调用正确。请查看调用函数。
支付宝用不用配置
App端不用任何配置即可调用。
支付宝公私钥说明
公私钥一共有两对分别是:自主生成一对公私钥,支付宝自动生成公私钥。把自主生成的公钥上传到支付宝,后支付宝生成公私钥。调用接口用到的是自主生成的私钥与支付宝生成的公钥。