博客> 商城系统针对开发者自有支付系统提供的解决方案
商城系统针对开发者自有支付系统提供的解决方案
2018-05-17 22:42 评论:0 阅读:317 皮皮酱

一、引言

1.1 文档概述

本文件描述Mob ShopSDK针对开发者自有支付系统提供的解决方案(即您可以使用您的自有支付系统接入shopSDK,支付系统对接的财务对账系统等均可以不做修改,方便您更好的接入ShopSDK)。文档分别从签名、接口、注意事项等方面详细介绍了Mob ShopSDK的工作方式和开发过程,可以帮助开发人员快速入门并掌握开发技能,同时也可以作为日后接口参数以及参数类型的速查手册。

1.2 阅读对象

供使用您自有的支付系统接入ShopSDK的技术或业务人员参考和查询。

1.3 业务术语

 1.png

二、方案概述

2.1 行业背景

在电子商务中,商家、买家、中间服务方是交易活动中的三个环节。买家选购商品下发订单,商家确认订单,买家通过支付服务方向商家支付货款,商家发货履行订单。

针对于开发者自有支付服务,EtradeSdk提供接口和开发者自有支付服务进行对接,为开发者提供更友好体验.

接口介绍

 2.png

2.2 加解密流程图

 3.png

2.3 业务流程图

 4.png

 5.png

三、数据格式

3.1 请求方式

采用HTTP标准的POST协议,为了保证接收方接收数据正确,传递的参数如果存在特殊字符(如&、=等)需要进行URL Encode。

3.2 响应格式

直接以简单字符串作为数据内容,一般用于后台通知模式的接口反馈,表示处理是否成功。

 6.png

四、数字签名

为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名校验。

数字签名有两个步骤,先按一定规则拼接要签名的原始串,再选择具体的算法和密钥计算出签名结果。

一般失败的结果不签名。

4.1 签名原始串

所有参数按照字段名的ascii码从小到大排序后使用QueryString的格式(即key1=value1&key2=value2…)拼接而成

参数最后一位为appsecret:值(该值为开发者appkey关联信息)拼接前面参数,使用MD5加密,生产签名

3、签名原始串中,字段名和字段值都采用原始值,不进行URL Encode。

举例:

调用某个接口,接口有如下字段:

partner、total_fee、desc、attach

实际调用接口时,各字段的值:

partner=1900000109,total_fee=1,desc=a&b,attach=,test=1

正确的签名原始串是:

desc=a&b&partner=1900000109&test=1&total_fee=1

常见的错误有:

desc=a&b&partner=1900000109&test=1&total_fee=1

desc=a&b&partner=1900000109&total_fee=1

attach=&desc=a&b&partner=1900000109&test=1&total_fee=1

partner=1900000109&total_fee=1&desc=a&b&test=1

4.2 签名算法

目前暂只支持MD5签名

MD5签名

MD5 是一种摘要生成算法,通过在签名原始串后加上商户通信密钥的内容,进行MD5运算,形成的摘要字符串即为签名结果。为了方便比较,签名结果统一转换为大写字符。

注意:签名时将字符串转化成字节流时指定的编码字符集应为utf-8。

MD5签名计算公式:

sign = Md5(原字符串& appsecret =开发者appsecret). toUpperCase

如:

签名原始串是:partner=1900000109&total_fee=1

开发者appsecret是:8934e7d15453e97507ef794cf7b0519d

签名的结果为:

sign=md5(input_charset=GBK&partner=1900000109&total_fee=1&appsecret=8934e7d15453e97507ef794cf7b0519d)= 4C513CB879523CA9D717EEA7819DEB0C

五、接口

5.1 对接自有支付系统订单支付状态变更接口

5.1.1 业务功能

订单支付状态变更

5.1.2 请求参数列表

请求url:http://openapi.shop.mob.com/thirdparty/ertrance/updateOrderStatus

通过post请求

 7.png

JSON格式:

{

“orderId”:90892555608600576,

“appkey”:”221a0c04f52d4″,

“totalMoney”:1000,

“payTicket”:”123a”,

“paidMoney”:800,

“payStatus”:1

}

5.1.3 返回结果参数列表

数据按json的格式实时返回

 8.png

成功示例:

{

“status”: 200,

“message”: “”,

“data”: “”

}

5.2 对接自有支付系统订单查询接口

5.2.1 业务功能

订单查询接口

5.2.2 请求参数列表

请求url: http://openapi.shop.mob.com/thirdparty/ertrance/queryOrderDetail

通过post请求

 9.png

JSON格式:

{

“orderId”:90892555608600576,

“appkey”:”221a0c04f52d4″

}

5.2.3 返回结果参数列表

 10.png

成功示例:

{

“status”: 200,

“message”: “”,

“data”: {

“orderId”: 2,

“paidMoney”: 201,

“totalMoney”: 1000

}

}

5.3 对接自有支付系统退款商品查询接口

5.3.1 业务功能

退款商品查询接口

5.3.2 请求参数列表

请求url:http://openapi.shop.mob.com/thirdparty/ertrance/queryRefundList

通过post请求

 11.png

JSON格式:

{

“appkey”:”221a0c04f52d4″,

“orderBeginAt”:”2017-11-28 11:50:13″,

“orderEndAt”:”2017-12-28 11:50:13″,

“refundApplyBeginDate”:”2017-11-2811:50:13″,

“refundApplyEndDate”:”2017-12-28 11:50:13″,

“orderId”:12346567512,

“productName”:”毛巾”,

“buyerId”:”1245233A”,

“pageIndex”:1,

“pageSize”:10

}

5.3.3 返回结果参数列表

 12.png

成功示例:

{

“status”: 200,

“message”: “”,

“data”: {

“pageIndex”: 1,

“count”: 1,

“list”: [

{

“refundCommodityId”: “98830451051405312”,

“refundFee”: 100,

“orderPaidMoney”: 100,

“orderId”: “99140624904790016”

}

]

}

}

5.4 对接自有支付退款状态变更接口

5.4.1 业务功能

对接自有支付系统退款进度状态变更。

5.4.2 请求参数列表

请求url:http://openapi.shop.mob.com//thirdparty/ertrance/updateRefundStatus

通过post请求

 13.png

JSON格式:

{

“appkey”:”221a0c04f52d4″,

“refundList”:

[

{

“refundCommodityId”:90892555608600576,

“refundFee”:100,

“status”:0

}

]

}

5.4.3 返回结果参数列表

数据按json的格式实时返回

 14.png

成功示例:

{

“status”: 200,

“message”: “SUUCCESS”,

“data”: “”

}

六、注意事项

所有涉及到金额的单位都是分,最小的单位是1分,不能有小数出现

请求头中必须携带appkey以及mobsign信息

RSA加密算法,MD5签名算法详细见附件

加密方法

在对接前需前往MOB后台管理页面获取公钥,输入您的服务器外网IP

 15.png

收藏
0
sina weixin mail 回到顶部