小程序支付

流程:
1.客户使用自己的小程序获取用户的openid
2.请求易风商户提供的API接口
3.易风商户将返回小程序支付相关参数
4.调用微信小程序支付

注意:小程序支付需要联系管理员手动将您的小程序appid与您申请的商户绑定。

请求地址:https://www.efengpay.com/api/v2/wechat/mini

请求方式:POST

请求参数:

字段 字段类型 是否必填 说明
app_key string app_key
sub_mch_id string 您在易风商户申请的小微商户号
sub_app_id string 客户的小程序app_id
sub_openid string 客户自己小程序下的用户openid,具体参考微信小程序文档
total_fee int 订单总支付金额,单位:分
out_trade_no string 用户自定义订单编号
subject string 用户自定义商品名
notify_url string 支付成功之后的异步回调地址
sign string 签名,具体请看 签名规则
extra string 用户自定义参数,在回调的时候原样返回,不超过200和字符

响应(失败)

{
    "code": 500,
    "message": "订单已存在"
}

响应(成功)

{
    "code": 200,
    "message": "success",
    "data": {
        "order_sn": "20190402224239134",
        "out_trade_no": "asdnjakj1323cacasasddzzasdXC123dasd",
        "total_fee": 1,
        "jsapi_app_id": "wx25db1b0b82771257",
        "jsapi_timeStamp": "1554216159",
        "jsapi_nonceStr": "tdsIP3OFyiPkXQeK",
        "jsapi_package": "prepay_id=wx022242372507495d4a0a6c5d3539442205",
        "jsapi_signType": "MD5",
        "jsapi_paySign": "7EA921FA770EFCCABCFEE0D294D02117",
        "sign": "C2D1E60D815AE30706DADF86CA8D9A13"
    }
}

响应参数:

字段 类型 必须 说明
code int 状态码,200为成功,其它为失败
message string 状态文本

下面参数是请求成功之后返回的:

字段 类型 必须 说明
data.order_sn string 易风商户平台订单号
data.out_trade_no string 客户自定义订单号
data.total_fee int 订单金额,单位:分
data.sign string 签名
data.jsapi_app_id string jsapi支付参数
data.jsapi_timeStamp string jsapi支付参数
data.jsapi_nonceStr string jsapi支付参数
data.jsapi_package string jsapi支付参数
data.jsapi_signType string jsapi支付参数
data.jsapi_paySign string jsapi支付参数

具体使用

下面是发起微信小程序支付的demo

wx.request({
    url: 'http://127.0.0.1:8000/api/wechat/mini',
    method: 'POST',
    data: {
        'app_key': 'gVbMznSAKGGCKcGgRNPUgiTKMDAwMU9F',
        'sign': 'C1709AAC02B62ED220583DEBC7451B62',
        'total_fee': 1,
        'sub_openid': 'openid',
        'sub_app_id': 'wx335189dd8ff06cb9',
        'notify_url': '123',
        'out_trade_no': '123asd123zxczxc121233zzxa13',
        'subject': '小程序测试支付'
    },
    success: function (res) {
        let data = res.data.data;
        wx.requestPayment({
            timeStamp: data.jsapi_timeStamp,
            nonceStr: data.jsapi_nonceStr,
            package: data.jsapi_package,
            signType: data.jsapi_signType,
            paySign: data.jsapi_paySign,
            success(res) {
                console.log(res);
            },
            fail(res) {
                console.log(res);
            }
        })
    }
})

results matching ""

    No results matching ""