支付
## 关于 yansongda/pay(v2.0) 支付对接
## [查看文档](https://pay.yansongda.cn/docs/v2/installation.html)
### 微信支付配置
```
[
'appid' => 'wx6************601', //APP APPID
'app_secret' => '6e5**********************f30', //APP secret
'miniapp_id' => 'wxe************435', //小程序 APPID
'secret' => '65de***********************e1c', //小程序 secret
'app_id' => 'wx2************e92', //公众号 APPID
'mch_id' => '1612284127', //商户号
'key' => '0dia09sdialkdvak0flka0sdio0ldm0q',
'cert_client'=> __DIR__ .'/apiclient_cert.pem',
'cert_key' => __DIR__ . '/apiclient_key.pem',
'log' => [
'file' => './logs/wechat.log', //日志地址
'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
'type' => 'single', // optional, 可选 daily.
'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
],
'http' => [ // optional
'timeout' => 5.0,
'connect_timeout' => 5.0,
],
//'mode' => 'dev', // optional, dev/hk;当为 `hk` 时,为香港 gateway。
]
```
### 微信小程序支付
```
use Yansongda\Pay\Pay;
$config = 微信支付配置;
$order = [
'out_trade_no' => time(), //订单号(随机生成)
'total_fee' => 1*100, //支付金额 **单位:分**
'body' => '********', //商品详情描述
'openid' => ******, //小程序用户openid
'notify_url' => ******, //支付通知回调验证地址
];
return Pay::wechat($config)->miniapp($order);
```
### 微信扫码支付(使用公众号appid)
```
use Yansongda\Pay\Pay;
$config = 微信支付配置
$pay_data = [
'out_trade_no' => time(), //订单号(随机生成)
'total_fee' => 1*100, //支付金额 **单位:分**
'body' => ********, //商品详情描述
'notify_url' => ********, //支付通知回调验证地址
];
$config = \Yii::$app->params['pay']['wechat'];
$result = Pay::wechat($config)->scan($pay_data); //公众号支付
return $result->code_url; //支付二维码
```
### 微信APP支付
```
```
### 微信支付成功回调验签
```
use Yansongda\Pay\Pay;
$config = 微信支付配置;
$pay = Pay::wechat($config);
$result = $pay->verify(); //验签
if($result){
$result->out_trade_no //订单号
//根据实际情况进行逻辑处理
........
}
return $pay->success()->send(); //确认回调
```
### 微信退款
```
use Yansongda\Pay\Pay;
$config = 微信支付配置
$data = [
'out_trade_no' => 123134111, //支付单号
'out_refund_no' => time(), //退款单号(随机生成)
'total_fee' => 10*100, //总支付金额 **单位:分**
'refund_fee' => 1*100, //需要退款金额 **单位:分**
'refund_desc' => ****, //退款商品详情描述
'notify_url' => ******, //退款通知回调验证地址
];
return Pay::wechat($config)->refund($data);
```
### 微信退款成功回调验签
```
use Yansongda\Pay\Pay;
$config = 微信支付配置
$pay = Pay::wechat($config);
$result = $pay->verify(null, true); //验签
if($result){
$result->out_trade_no //订单号
//根据实际情况进行逻辑处理
........
}
return $pay->success()->send(); //确认回调
```
### 支付宝支付配置
```
[
'app_id' => '2****3', //app应用id
'ali_public_key' => ******, //应用公钥
'private_key' => ******, //应用私钥PKCS1格式
'log' => [
'file' => './logs/alipay.log', //日志地址
'level' => 'info', //建议生产环境等级调整为 info,开发环境为 debug
'type' => 'single', //optional, 可选 daily.
'max_file' => 30, //optional, 当 type 为 daily 时有效,默认 30 天
],
'http' => [ // optional
'timeout' => 5.0,
'connect_timeout' => 5.0,
],
//'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
]
```
### 支付宝APP支付
```
use Yansongda\Pay\Pay;
$config = 支付宝支付配置
$order = [
'out_trade_no' => time(), //订单号
'total_amount' => 0.1, //支付金额
'subject' => *******, //商品详情描述
'notify_url' => *******, //支付通知回调验证地址
];
$result = Pay::alipay($config)->app($order);
return $result->getContent();
```
### 支付宝支付成功回调验签
```
use Yansongda\Pay\Pay;
$config = 支付宝支付配置;
$config['ali_public_key'] = *******; //支付宝公钥替换应用公钥
$pay = Pay::alipay($config);
$result = $pay->verify(); //验签
if($result){
$result->out_trade_no //订单号
//根据实际情况进行逻辑处理
........
}
return $pay->success()->send(); //确认回调
```
### 支付宝退款
```
use Yansongda\Pay\Pay;
$config = 支付宝支付配置;
$config['ali_public_key'] = ******; //支付宝公钥替换应用公钥
$data = [
'out_trade_no' => 11231323, //支付单号
'refund_amount' => 0.1, //退款金额
'notify_url' => *******, //退款通知回调验证地址
];
return Pay::alipay($config)->refund($data);
```
### 支付宝退款成功回调验签
```
use Yansongda\Pay\Pay;
$config = 支付宝支付配置;
$pay = Pay::alipay($config);
$result = $pay->verify(null, true); //验签
if($result){
$result->out_trade_no //订单号
//根据实际情况进行逻辑处理
........
}
return $pay->success()->send(); //确认回调
```