CPAY接口文档


小程序支付

小程序支付

前提条件

商户申请小程序或使用渠道小程序

接口地址

http://xipay.xiangma365.com/api/openpay/v3/minipay

请求方式

POST

请求头部

Content-Type:application/json

请求参数

参数 类型 必填 描述 示例
inst_no string Y 机构号 ,通道分配 60000001
mch_no string Y 商户号 Y52212200002
pay_type string Y 支付类型:300 支付宝,400 微信,600 云闪付 400
pay_trace_no string Y 请求流水号(在商户系统内唯一) werddtuoji0988
pay_time string Y 支付请求时间,yyyyMMddHHmmss格式 20880907150901
total_amount string Y 支付金额,单位:分 1
open_id string N 用户标识:微信openid/支付宝userid orxYXv8u8H4i2K0uB6RVXZ
appid string 微信小程序的appid(此处取值优先于后台配置) wxbca6c935a45dcdc5
notify_url string N 回调地址(无须ecode) http://open.sh.com
sign string Y 签名字符串 920ff5b412adb411c6648948f2212fb9

请求示例(微信)

{
    "inst_no": 60000001,
    "mch_no": "Y52212190001",
    "pay_type": "400",
    "pay_trace_no": "998877665544332001",
    "pay_time": "20230227231190",
    "total_amount": "1",
    "open_id": "1",
    "appid": "1",
    "sign": "ca80a3969b049138cbd27970c8d4639d"
}

请求示例(支付宝)

响应参数

参数 类型 必填 描述 示例
return_code string Y 响应码:SUCCESS成功,FAIL失败,响应码仅代表通信或参数 SUCCESS
result_code string Y 业务结果:PAY_SUCCESS 支付成功 ,PAY_IN_PROCESS 支付中 ,PAY_FAIL 支付失败,只有在return_code为SUCCESS时才会返回。 PAY_SUCCESS
return_msg string Y 返回信息提示,“支付成功”,“支付中”,“参数不合法” 等 支付成功
pay_type string Y 支付类型:300支付宝,400微信,600云闪付 300
mch_name string Y 商户名称 小猫生活
shop_name string 门店名称 小猫生活
mch_no string Y 商户号 851811130002
shop_no string 门店号 86000033007
pay_trace_no string Y 请求流水号(必须在商户系统内唯一) 51c7d68424e5492199cf7f4734a2b977
pay_time string Y 请求交易时间,格式yyyyMMddHHmmss 20181116155621
total_amount string Y 支付金额,单位:分 100
trade_no string Y 订单号 20000002814118090716435200001
appId object 微信公众号支付返回字段,公众号appId appIdXXX
timeStamp object 微信公众号支付返回字段,时间戳,部分系统取到的值为毫秒级,需要转换成秒(10位数字) 1414561699
nonceStr object 微信公众号支付返回字段,随机字符串 1234
packages object 微信公众号支付返回字段,支付参数 prepay_id=123456789
signType object 微信公众号支付返回字段,签名方式 MD5,RSA
paySign object 微信公众号支付返回字段,签名
ali_trade_no object 支付宝JSAPI支付返回字段用于调起支付宝JSAPI
attach string
code_url string 跳转到该地址即可发起支付,与原生参数不同时返回
sign string Y 签名 336437c53711dd466154c4162cbe1c52

响应示例(微信)

响应示例(支付宝)

对接流程

1.通过授权获取用户 open_id

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

商户也可以使用以下接口获取openid: 接口地址:http://xipay.xiangma365.com/api/openpay/jsapi/getminiopenid 请求方式 POST 请求头部 Content-Type:application/json 请求参数:

{'code':res.code,'appid':appid,'secret':secret,'mch_no':mch_no}

(其中参数appid/secret与mch_no二选择一,选择mch_no时使用渠道小程序获取openid)

示例如下:

wx.login({
                        provider: "weixin",
                        success: res => {
                            console.log('code=====',res.code);
                            //u商户小程序appid和secret
                            const appid = 'wx1cdb34ade5d35a4d'; // 微信小程序appid
                            const secret = '96f8a00c73fddddfbcdc9121b0806ff4'; // 微信小程序secret 
                            //调用request请求api转换登录凭证 
                            wx.request({
                                url: 'http://xipay.xiangma365.com/api/openpay/jsapi/getminiopenid',
                                data:{
                                    'code':res.code,
                                    'appid':appid,
                                    'secret':secret
                                    },
                                method:'POST',
                                header: {
                                    'content-type': 'application/json'
                                },
                                success: function (result) {
                                    if(result.statusCode === 200) {
                                        console.log('openid=======',result.data.data);
                                        // uni.setStorageSync('openid', result.data.openid);
                                        // uni.setStorageSync('session_key', result.data.session_key);
                                    }           
                                }
                            })                          
                        }
                    })  

2.商户服务端使用 open_id 下单

接口使用上述接口:小程序支付 请求参数

{
    "inst_no": 60000001,
    "mch_no": "Y52212190001",
    "open_id": "oyf3m5sNmCpb4lkZc-iGG30CHztg",
    "pay_type": "400",
    "pay_trace_no": "998877665544332009",
    "pay_time": "20230227231190",
    "total_amount": "1",
    "sign": "ac6e3889707135f9d244ab088fc3e75b"
}

3.小程序端发起支付

小程序端使用返回的参数发起支付 调用wx.requestPayment(OBJECT)发起微信支付

wx.requestPayment(
{
    'timeStamp': '',
    'nonceStr': '',
    'package': '',
    'signType': 'MD5',
    'paySign': '',
    'success':function(res){},
    'fail':function(res){},
    'complete':function(res){}
})

页面列表

ITEM_HTML