码迷,mamicode.com
首页 > 其他好文 > 详细

统一支付接口设计

时间:2019-05-31 19:41:46      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:appcode   iot   java   第三方   timestamp   sys   time   ext   ace   

1、接口说明

支付接口用于后台根据自己逻辑的单号生成签名用于调起第三方。

2、接口地址

xxx/v1/pay

3、接口格式

上行:Key & Value

下行:JSON

4、协议

HTTP/POST

5、输入参数

参数名

类型

是否必填

备注

token

String


appId

string

设备唯一标识

appVersion

string

APP版本

imei

string

手机串码

phoneModel

string

手机型号

timestamp

string

时间戳

orderId

 string

对应业务的单号

orderType

int

业务类型(1、 普通行程订单 2、企业行程订单  3.xxx

   4.小程序行程订单   40:钱包充值订单)

payment

int

支付方式(0免单支付,1支付宝(项目app),2微信(项目app) 3(企业支付) 4.余额支付 5银联支付...   )201:公众号/小程序 

openId

String特殊是当payment=
201
 公众号/小程序支付时 必须传入 OpenID    当payment=421 同理

appCode

String特殊是当payment=201 公众号/小程序支付时     项目xx端小程序 :"12021"   当payment=421 同理

PS.已规划appCode    10010(零元) 11010(支付宝APP) 12020(微信APP)12021(xx小程序)12022(XX公众号微信原生扫码) 12023(XX公众号微信H5) 13010(企业) 14010(余额支付)   14011(余额支付-余额自动支付)  

6、请求示例


orderId=133&orderType=1&payment=1


7、输出参数

参数名

类型

是否必填

备注

code

Integer

状态码

msg

String

返回消息

data

Object

返回数据


Object内容(支付宝)

 说明:因为此接口返回的是第三方要求的需要可以被调起的签名格式,故Object内容为一个经过加密的字符串。移动端拿到数据调用即可

Object内容(微信) 

参数名

类型

是否必填

备注

app_id

String

微信开放平台审核通过的应用APPID

partnerid 

String

微信支付分配的商户号

prepayid

String

微信返回的支付交易会话ID

package 

String

暂填写固定值Sign=WXPay

noncestr 

String

随机字符串,不长于32位。

timestamp 

String

时间戳

sign 

String

签名


 

支付宝

{

      "data": “

alipay_sdk=alipay-sdk-java-3.1.0
&app_id=xxx
&biz_content=%7B%22xxx_amount%22%3A%220.01%22%7D
&charset=UTF-8
&format=json
&method=alipay.trade.app.pay
&notify_url=xxxpayAliCallback
&return_url=xxxFreturn
&sign=cyu9MIAJGjGZ7yQKo7Lvu4C8cVCm%2BOeME%2B9A%2B%2BYkabZiBMguCPhtzQliruUaE5yyWhbNBtIqwT%2Bb4vIWzhb%2FlEiFcovcsKYbe46lDo9ihy%2Fb%2FTMBX%x‘x‘x%2BkhIcykHpfjfZLrWjdD7flsPRIotoBq%xxx%2F6vBQPC%2Fv8feQBlmFEfgoLLX8IBnFd5G%2F6n0GIwfVjOArSQ58izGuNjjXHHdtTbbiOD2oJMfAomUlCCwIOBYEvexgO4qOWKOFqcGOwnu594a4tG7vnCtOuTTwA%3D%3D
&sign_type=RSA2
&timestamp=2018-07-11+11%3A34%3A00
&version=1.0"

}

微信

{

 "code":0,

  "data": {

       "package":"Sign=WXPay",

       "appid":"xxx",

       "partnerid":"xxx",

       "prepayid":"wx20180711174645947779",

       "noncestr":"gSBpmOpKk8mhvdGTZaie",

       "timestamp":"1531302402"

       "sign":"EE8707786C6D008E48608291E971A920",

      }

}



小程序支付结果:

{

 "code":0,

  "data": {

        "appId":"xxxx",

        "timeStamp":"Sign=WXPay",

        "nonceStr":"wx1930ad04c1e714a8",

        "package":"prepay_id=xxxxxx",

        "signType":"MD5",

        "paySign":"EE8707786C6D008E48608291E971A920",

      }

}


企业支付

{

      "code":0,

      "msg": "支付成功!"

}



9、状态码

态码
msg
200支付成功
xxx1
订单已支付
xxx2
订单已关闭
xxx3
校验订单信息失败(未到支付状态/未查询到订单)
xxx4
支付渠道错误
xxx5
MQ广播通知错误
xxx6
操作失败



统一支付接口设计

标签:appcode   iot   java   第三方   timestamp   sys   time   ext   ace   

原文地址:https://www.cnblogs.com/wangdaijun/p/10956991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!