php扣费代码,微信支付-扣费服务开发者文档
微信支付-扣费服务开发者文档
安全规范
1. 签名算法签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&...&keyN=valueN)。
例如:appid=1234567890&attach=12345&body=测试&detail=测试&mch_id=1234567890&mch_billno=20150826100001&nonce_str=abc123¬ify_url= 第二步,利用签名算法生成签名。
微信支付接口中使用的签名算法为MD5或HMAC-SHA256。具体如下:
* MD5:将所有发送或者接收到的数据按照字典序排序后,拼接成一个字符串,然后用MD5进行加密。
* HMAC-SHA256:将所有发送或者接收到的数据按照字典序排序后,拼接成一个字符串,然后用HMAC-SHA256进行加密。
2. 加密算法微信支付接口中使用的加密算法为AES-128-CBC。具体如下:
* 将明文数据进行AES-128-CBC加密。
* 使用16进制编码将加密后的数据转换成字符串。
3. 数字证书微信支付接口中使用的数字证书为X509v3。具体如下:
* 使用RSA-2048算法生成私钥和公钥。
* 将公钥编码成PEM格式,作为数字证书。
4. 安全通信微信支付接口中使用的安全通信协议为TLS1.2或以上版本。具体如下:
* 使用RSA-2048算法进行密钥交换。
* 使用AES-128-CBC算法进行数据加密。
* 使用SHA256算法进行消息摘要。
5. 安全验证微信支付接口中使用的安全验证协议为HMAC-SHA256。具体如下:
* 将所有发送或者接收到的数据按照字典序排序后,拼接成一个字符串,然后用HMAC-SHA256进行加密。
* 使用SHA256算法对加密后的数据进行消息摘要。
微信支付-扣费服务开发者文档
1. 接口概述微信支付-扣费服务是微信支付提供的扣费接口,支持多种类型的扣费,如余额扣费、卡扣费等。具体如下:
* 支持余额扣费:将用户的余额进行扣减。
* 支持卡扣费:将用户的卡账户进行扣减。
2. 接口参数微信支付-扣费服务接口中使用的参数如下:
| 参数名称 | 必须 | 类型 | 描述 |
| --- | --- | --- | --- |
| appid | 是 | string | 应用ID |
| attach | 否 | string | 附加信息 |
| body | 是 | string | 扣费描述 |
| detail | 否 | string | 扣费详细信息 |
| mch_id | 是 | string | 商户ID |
| mch_billno | 是 | string | 商户单据号 |
| nonce_str | 是 | string | 随机字符串 |
| notify_url | 是 | string | 通知URL |
| partner_key | 是 | string | 商户密钥 |
| sign_type | 是 | string | 签名类型 |
| spbill_create_ip | 否 | string | 扣费IP |
| trade_no | 否 | string | 扣费单号 |
| transaction_id | 否 | string |交易ID |
3. 接口返回微信支付-扣费服务接口中使用的返回值如下:
* code:返回码* message:返回信息* data:返回数据具体如下:
| 返回参数名称 | 类型 | 描述 |
| --- | --- | --- |
| code | int | 返回码 |
| message | string | 返回信息 |
| data | object | 返回数据 |
4. 接口示例以下是微信支付-扣费服务接口的示例:
```php
// attach$attach = '12345';
// body$body = '测试';
// detail$detail = '测试';
// mch_id$mch_id = '1234567890';
// mch_billno$mch_billno = '20150826100001';
// nonce_str$nonce_str = 'abc123';
// notify_url$notify_url = ' partner_key$partner_key = '1234567890123456789';
// sign_type$sign_type = 'MD5';
// spbill_create_ip$spbill_create_ip = '192.168.1.1';
// trade_no$trade_no = '201508261000010001';
// transaction_id$transaction_id = '1409622873';
// 接口请求$url = ' = array(
'appid' => $appid,
'attach' => $attach,
'body' => $body,
'detail' => $detail,
'mch_id' => $mch_id,
'mch_billno' => $mch_billno,
'nonce_str' => $nonce_str,
'notify_url' => $notify_url,
'partner_key' => $partner_key,
'sign_type' => $sign_type,
'spbill_create_ip' => $spbill_create_ip,
'trade_no' => $trade_no,
'transaction_id' => $transaction_id);
// 接口返回$response = json_decode(file_get_contents($url, false, stream_context_create(array(' => array(
'method' => 'POST',
'content' => 'header' => 'Content-Type: application/x-www-form-urlencoded'
)))), true);
// 返回信息echo $response['code'] . "
";
echo $response['message'] . "
";
// 返回数据echo json_encode($response['data']) . "
";
?>
```
以上是微信支付-扣费服务接口的示例代码。具体如下:
* appid:应用ID* attach:附加信息* body:扣费描述* detail:扣费详细信息* mch_id:商户ID* mch_billno:商户单据号* nonce_str:随机字符串* notify_url:通知URL* partner_key:商户密钥* sign_type:签名类型* spbill_create_ip:扣费IP* trade_no:扣费单号* transaction_id:交易ID以上是微信支付-扣费服务接口的示例代码。具体如下:
* code:返回码* message:返回信息* data:返回数据