感觉不行就换个扩展,easywechat
给你上个完整的Demo,我也是用webman弄的,可以参考。 不过是扫码支付的!~
<?php namespace app\controller; use support\Request; use support\Response; use Yansongda\Pay\Pay; class Payment { protected $config = [ 'alipay' => [ 'default' => [ // 必填-支付宝分配的 app_id 'app_id' => 'wx4926de289f70b113', // 必填-应用私钥 字符串或路径 'app_secret_cert' => 'MIIEvLoLc1s/VdBHku+JEdu78mEY+p4664Rnlu4AlzLxkWUTTg==', // 必填-应用公钥证书 路径 'app_public_cert_path' => '/Users/yansongda/pay/cert/appCertPublicKey_2016082000295641.crt', // 必填-支付宝公钥证书 路径 'alipay_public_cert_path' => '/Users/yansongda/pay/cert/alipayCertPublicKey_RSA2.crt', // 必填-支付宝根证书 路径 'alipay_root_cert_path' => '/Users/yansongda/pay/cert/alipayRootCert.crt', 'return_url' => 'https://yansongda.cn/alipay/return', 'notify_url' => 'https://yansongda.cn/alipay/notify', // 选填-第三方应用授权token 'app_auth_token' => '', // 选填-服务商模式下的服务商 id,当 mode 为 Pay::MODE_SERVICE 时使用该参数 'service_provider_id' => '', // 选填-默认为正常模式。可选为: MODE_NORMAL, MODE_SANDBOX, MODE_SERVICE 'mode' => Pay::MODE_NORMAL, ] ], 'wechat' => [ 'default' => [ // 必填-商户号,服务商模式下为服务商商户号 'mch_id' => '123xxxx02', // 必填-商户秘钥 'mch_secret_key' => 'xxxxx', //api安全中心里的V3密码32位的那个 // 必填-商户私钥 字符串或路径 'mch_secret_cert' => '/xxxxx/apiclient_key.pem', //api安全中心里下载的的密钥,绝对路径 // 必填-商户公钥证书路径 'mch_public_cert_path' => '/xxxx/apiclient_cert.pem', //api安全中心里下载的公钥,绝对路径 // 必填 'notify_url' => 'https://www.xxx.com/member/wx_native_notify', //支付回调地址必须https // 选填-公众号 的 app_id 'mp_app_id' => 'wx4926de289f70b113', // 选填-小程序 的 app_id 'mini_app_id' => '', // 选填-app 的 app_id 'app_id' => '', // 选填-合单 app_id 'combine_app_id' => '', // 选填-合单商户号 'combine_mch_id' => '', // 选填-服务商模式下,子公众号 的 app_id 'sub_mp_app_id' => '', // 选填-服务商模式下,子 app 的 app_id 'sub_app_id' => '', // 选填-服务商模式下,子小程序 的 app_id 'sub_mini_app_id' => '', // 选填-服务商模式下,子商户id 'sub_mch_id' => '', // 选填-微信公钥证书路径, optional,强烈建议 php-fpm 模式下配置此参数 'wechat_public_cert_path' => [ '4248DC46520F9EAC26C7FET4464ADBE5ADDA3A' => '/xxxx/wechatpay_public.pem', //通过算法生成的,具体生成方式往下面看。 ], // 选填-默认为正常模式。可选为: MODE_NORMAL, MODE_SERVICE 'mode' => Pay::MODE_NORMAL, ] ], 'logger' => [ 'enable' => false, '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, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ], ]; //二维码生成展示页 public function index(Request $request) { Pay::config($this->config); $order = [ 'out_trade_no' => time().'', 'description' => 'subject-测试', 'amount' => [ 'total' => 1, ], ]; $result = Pay::wechat()->scan($order); // 二维码内容: $qr = $result->code_url; //var_export($result->code_url); return view('payment/index', ['code_url' => $result->code_url]); } //支付成功回调 public function verify(Request $request) { Pay::config($this->config); // 是的,你没有看错,就是这么简单! $result = Pay::wechat()->callback($request->post()); file_put_contents(__DIR__ . '/notify_result_ysd.txt', date('Y-m-d H:i:s') . ':' . var_export($result, true)); //这里很关键,需要注意。 return new Response(200, [], json_encode(['code' => 'SUCCESS', 'message' => '成功'])); } }
你这个是v2吧 我回退到v2了 v2没有问题
V3
大家有没有遇到过微信支付的问题 Yansongda\Pay\Exception\InvalidResponseException: Unpack Response Error in D:\webman\vendor\yansongda\pay\src\Parser\ArrayParser.php:35<br /> Yansongda\Pay\Exception\InvalidResponseException: Unpack Response Error in D:\webman\vendor\yansongda\pay\src\Parser\ArrayParser.php:35<br />
我也遇到这个问题了 解决了吗 好兄弟
解决了要修改一下你的配置文件 改成普通模式
配置文件 改成普通模式 +1
微信 app支付 人家返回的是一个集合
感觉不行就换个扩展,easywechat
给你上个完整的Demo,我也是用webman弄的,可以参考。
不过是扫码支付的!~
你这个是v2吧 我回退到v2了 v2没有问题
V3
大家有没有遇到过微信支付的问题
Yansongda\Pay\Exception\InvalidResponseException: Unpack Response Error in D:\webman\vendor\yansongda\pay\src\Parser\ArrayParser.php:35<br />
Yansongda\Pay\Exception\InvalidResponseException: Unpack Response Error in D:\webman\vendor\yansongda\pay\src\Parser\ArrayParser.php:35<br />
我也遇到这个问题了 解决了吗 好兄弟
解决了要修改一下你的配置文件 改成普通模式
配置文件 改成普通模式 +1
微信 app支付 人家返回的是一个集合