码迷,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
迷上了代码!