商城系統針對開發者自有支付系統提供的解決方案
一、引言
1.1 文檔概述
本文件描述Mob ShopSDK針對開發者自有支付系統提供的解決方案(即您可以使用您的自有支付系統接入shopSDK,支付系統對接的財務對賬系統等均可以不做修改,方便您更好的接入ShopSDK)。文檔分別從簽名、介面、注意事項等方面詳細介紹了Mob ShopSDK的工作方式和開發過程,可以幫助開發人員快速入門並掌握開發技能,同時也可以作為日後介面參數以及參數類型的速查手冊。
1.2 閱讀對象
供使用您自有的支付系統接入ShopSDK的技術或業務人員參考和查詢。
1.3 業務術語
二、方案概述
2.1 行業背景
在電子商務中,商家、買家、中間服務方是交易活動中的三個環節。買家選購商品下發訂單,商家確認訂單,買家通過支付服務方向商家支付貨款,商家發貨履行訂單。
針對於開發者自有支付服務,EtradeSdk提供介面和開發者自有支付服務進行對接,為開發者提供更友好體驗.
介面介紹
2.2 加解密流程圖
2.3 業務流程圖
三、數據格式
3.1 請求方式
採用HTTP標準的POST協議,為了保證接收方接收數據正確,傳遞的參數如果存在特殊字元(如&、=等)需要進行URL Encode。
3.2 響應格式
直接以簡單字元串作為數據內容,一般用於後台通知模式的介面反饋,表示處理是否成功。
四、數字簽名
為了保證數據傳輸過程中的數據真實性和完整性,我們需要對數據進行數字簽名,在接收簽名數據之後進行簽名校驗。
數字簽名有兩個步驟,先按一定規則拼接要簽名的原始串,再選擇具體的演算法和密鑰計算出簽名結果。
一般失敗的結果不簽名。
4.1 簽名原始串
所有參數按照欄位名的ascii碼從小到大排序後使用QueryString的格式(即key1=value1&key2=value2…)拼接而成
參數最後一位為appsecret:值(該值為開發者appkey關聯信息)拼接前面參數,使用MD5加密,生產簽名
3、簽名原始串中,欄位名和欄位值都採用原始值,不進行URL Encode。
舉例:
調用某個介面,介面有如下欄位:
partner、total_fee、desc、attach
實際調用介面時,各欄位的值:
正確的簽名原始串是:
常見的錯誤有:
4.2 簽名演算法
目前暫只支持MD5簽名
MD5簽名
MD5 是一種摘要生成演算法,通過在簽名原始串後加上商戶通信密鑰的內容,進行MD5運算,形成的摘要字元串即為簽名結果。為了方便比較,簽名結果統一轉換為大寫字元。
注意:簽名時將字元串轉化成位元組流時指定的編碼字符集應為utf-8。
MD5簽名計算公式:
sign = Md5(原字元串& appsecret =開發者appsecret). toUpperCase
如:
開發者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請求
JSON格式:
{
「appkey」:」221a0c04f52d4″,
「totalMoney」:1000,
「payTicket」:」123a」,
「paidMoney」:800,
「payStatus」:1
}
5.1.3 返回結果參數列表
數據按json的格式實時返回
成功示例:
{
「status」: 200,
「message」: 「」,
「data」: 「」
}
5.2 對接自有支付系統訂單查詢介面
5.2.1 業務功能
訂單查詢介面
5.2.2 請求參數列表
請求url: http://openapi.shop.mob.com/thirdparty/ertrance/queryOrderDetail
通過post請求
JSON格式:
{
「appkey」:」221a0c04f52d4″
}
5.2.3 返回結果參數列表
成功示例:
{
「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請求
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″,
「productName」:」毛巾」,
「buyerId」:」1245233A」,
「pageIndex」:1,
「pageSize」:10
}
5.3.3 返回結果參數列表
成功示例:
{
「status」: 200,
「message」: 「」,
「data」: {
「pageIndex」: 1,
「count」: 1,
「list」: [
{
「refundCommodityId」: 「98830451051405312」,
「refundFee」: 100,
「orderPaidMoney」: 100,
}
]
}
}
5.4 對接自有支付退款狀態變更介面
5.4.1 業務功能
對接自有支付系統退款進度狀態變更。
5.4.2 請求參數列表
請求url:http://openapi.shop.mob.com//thirdparty/ertrance/updateRefundStatus
通過post請求
JSON格式:
{
「appkey」:」221a0c04f52d4″,
「refundList」:
[
{
「refundCommodityId」:90892555608600576,
「refundFee」:100,
「status」:0
}
]
}
5.4.3 返回結果參數列表
數據按json的格式實時返回
成功示例:
{
「status」: 200,
「message」: 「SUUCCESS」,
「data」: 「」
}
六、注意事項
所有涉及到金額的單位都是分,最小的單位是1分,不能有小數出現
請求頭中必須攜帶appkey以及mobsign信息
RSA加密演算法,MD5簽名演算法詳細見附件
加密方法
在對接前需前往MOB後台管理頁面獲取公鑰,輸入您的伺服器外網IP
※Android如何使用ShareSDK集成社會化分享
※adb使用技巧和usb通信原理探索
TAG:Mob開發者服務平台 |