支付

## 关于 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(); //确认回调 ```