插件开发者可以调用客户端支付控件进行支付,支付控件自动处理 用户钱包,微信,支付宝的支付,开发者只需要关注自己的具体的业务逻辑不需要和支付的实现打交道 ### 1.统一下单(获取统一订单号) >http://客户端域名/core/pay/pay/unifiedOrder?trade_no=1231212&callback=http://www.baidu.com&amount=1&title=商城购物&user_id=5&des=KTV购物卷&remark=测试下单&secret=xxxxxxxxx #### 参数说明 | 名称 |类型|说明 | | --- | -- |--- | | trade_no|string |订单编号 | | callback|string |回调地址 | | amount|float |金额单位元 | | title|string |字符标题 | | user_id|int |发起支付用户id | | des|string |订单描述 | | remark|string |订单备注 | | secret|string |后台设置的secret密钥 | | to_account|boolean |钱是否进入收款账户(可选) | #### 返回实例 ~~~ { "success": true, "code": 100, "msg": null, "data": { "unionOrderNum": "201704175691492394233594" } } ~~~ | 名称 |类型|说明 | | --- | -- |--- | | unionOrderNum|string |统一订单编号 | ### 2.使用magjs调用客户端支付 ~~~ /** * @param(required) config Object * { * money: 付款金额 (String, required), * title: 标题 (String, required), * des: 描述 (String, required), * payWay: { // 客户端支持的支付方式 * wallet: 用户钱包 (Number, 1|0, required), * weixin: 微信支付 (Number, 1|0, required), * alipay: 支付宝支付 (Number, 1|0, required), * }, * orderNum:订单号(和统一下单的tradeNo相同) * unionOrderNum: 统一订单号 (String, required), * type: "打赏 充值等等" (String, required) * } * @param(required) success Function * @param(required) fail Function */ mag.pay(config, function(){ // 支付成功回调 }, function(){ // 支付失败回调 }); ~~~ ### 3.处理支付成功回调 用户支付成功后马甲服务端会调用创建统一下单接口传入的callback接口 > http://callback 回调链接马甲程序不会添加任何参数 建议开发者自己加上参数unionOrderNum,tradeNo,并加上自己的签名方法 如unionOrderNum=1111&tradeNo=1111&sign=xxxxx&rand=随机数 sign=md5(unionOrderNum.tradeNo.rand.自己的签名密钥); 回调接口一定添加上签名不然很不安全 * * * * * 返回结果 成功 返回 字符串 SUCCESS 失败 返回 字符串 FAIL 支付回调接口目前在用户支付后会立马回调,目前只会回调一次 ### 4.查询订单支付状态 防止回调失败开发者可以自行查询订单状态 >http://客户端域名/core/pay/pay/orderStatusQuery?unionOrderNum=11111&secret=xxxxxxxxx #### 参数说明 | 名称 |类型|说明 | | --- | -- |--- | | unionOrderNum|string |统一下单号 | | secret|string |后台设置的secret密钥 | #### 返回实例 ~~~ { success: true, code: 101, msg: "", paycode: 1, paymsg: "支付成功", unionOrderNum: "2017052471701495604727100" } ~~~ | 名称 |类型|说明 | | --- | -- |--- | | paycode|int |支付状态编号 1:支付成功 2:订单未支付 3:订单不存在 | | paymsg|string |支付状态描述 | > 因各家站点服务器稳定性,支付回调有机率不回调,或者回调处理失败,因服务端回调只会调用一次,建议开发者实现主动订单状态查询功能 ### 5.开发者账户转账 >http://客户端域名/core/pay/pay/accountTransfer?secret=112233&user_id=1&amount=1&remark=微商城购买&out_trade_code=213123 #### 参数说明 | 名称 |类型|说明 | | --- | -- |--- | | user_id|int |收款用户ID | | amount|float |金额,不可为负数 | | remark|string |备注,例如:微商城购买 | | out_trade_code|string |业务订单号 | | secret|string |后台设置的secret密钥 | #### 返回实例 ~~~ { success: true, code: 101, msg: "" } ~~~ ### 6.查询账户余额 >http://客户端域名/core/pay/pay/getAccountBalance?secret=112233 #### 参数说明 | 名称 |类型|说明 | | --- | -- |--- | | secret|string |后台设置的secret密钥 | #### 返回实例 ~~~ { success: true, code: 101, msg: "", data: 88.9 } ~~~ | 名称 |类型|说明 | | --- | -- |--- | | data|float |钱包余额 |