微信小程序支付、充值(后台用thinkphp)

5

微信小程序支付、充值(后台用thinkphp)

微信小程序支付、充值系统开发

准备工作

1.申请小程序AppID和APPSECRET2. 获取MCHID(商户ID)和KEY(商户密钥)

制作签名

签名需要五个参数分别是:

* appId(小程序AppID)

* timeStamp(当前时间戳)

* nonceStr(随机字符串)

* package(统一下单返回的值)

* signType(固定值:微信支付)

```phpfunction makeSign($params) {

$sign = "";

ksort($params);

foreach ($params as $key => $value) {

$sign .= $key . "=" . $value . "&";

}

$sign = rtrim($sign, "&");

$sign = hash("sha256", $sign . "&key=" . config('pay.key'));

return $sign;

}

```

微信支付接口

1. 统一下单接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `nonce_str`:随机字符串 * `body`:支付描述 * `out_trade_no`:订单号 * `total_fee`:金额(分)

* `spbill_create_ip`:IP地址 * 请求示例:

```phpfunction unifiedOrder($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'nonce_str' => getNonceStr(),

'body' => $params['body'],

'out_trade_no' => $params['out_trade_no'],

'total_fee' => $params['total_fee'] *100,

'spbill_create_ip' => $_SERVER['REMOTE_ADDR']

);

$data = array_merge($data, array('sign' => makeSign($data)));

return curlPost($url, $data);

}

```

2. 查询订单接口

* 请求方式:GET * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `transaction_id`:订单号 * 请求示例:

```phpfunction orderQuery($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'transaction_id' => $params['transaction_id']

);

return curlGet($url, $data);

}

```

3. 关闭订单接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `out_trade_no`:订单号 * 请求示例:

```phpfunction closeOrder($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'out_trade_no' => $params['out_trade_no']

);

return curlPost($url, $data);

}

```

4. 反馈接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `transaction_id`:订单号 * `out_trade_no`:订单号 * `openid`:用户OpenID * 请求示例:

```phpfunction feedback($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'transaction_id' => $params['transaction_id'],

'out_trade_no' => $params['out_trade_no'],

'openid' => $params['openid']

);

return curlPost($url, $data);

}

```

充值接口

1. 统一下单接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `nonce_str`:随机字符串 * `body`:充值描述 * `out_trade_no`:订单号 * `total_fee`:金额(分)

* `spbill_create_ip`:IP地址 * 请求示例:

```phpfunction unifiedOrder($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'nonce_str' => getNonceStr(),

'body' => $params['body'],

'out_trade_no' => $params['out_trade_no'],

'total_fee' => $params['total_fee'] *100,

'spbill_create_ip' => $_SERVER['REMOTE_ADDR']

);

$data = array_merge($data, array('sign' => makeSign($data)));

return curlPost($url, $data);

}

```

2. 查询订单接口

* 请求方式:GET * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `transaction_id`:订单号 * 请求示例:

```phpfunction orderQuery($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'transaction_id' => $params['transaction_id']

);

return curlGet($url, $data);

}

```

3. 关闭订单接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `out_trade_no`:订单号 * 请求示例:

```phpfunction closeOrder($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'out_trade_no' => $params['out_trade_no']

);

return curlPost($url, $data);

}

```

4. 反馈接口

* 请求方式:POST * 请求地址: * 请求参数:

* `appid`:小程序AppID * `mch_id`:商户ID * `transaction_id`:订单号 * `out_trade_no`:订单号 * `openid`:用户OpenID * 请求示例:

```phpfunction feedback($params) {

$url = " $data = array(

'appid' => config('pay.appid'),

'mch_id' => config('pay.mchid'),

'transaction_id' => $params['transaction_id'],

'out_trade_no' => $params['out_trade_no'],

'openid' => $params['openid']

);

return curlPost($url, $data);

}

```

注意事项

1. 统一下单接口

* 请求方式:POST * 请求地址: * 请求参数:

+ `appid`:小程序AppID + `mch_id`:商户ID + `nonce_str`:随

支付小程序

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 微信统一下单body参数中文报错问题

下一篇 java微信支付v3系列——5.微信支付成功回调