yansongda的包支付宝手机端支付验签失败解决方案

验签方法verify()在目录:/vendor/yansongda/pay/src/Gateways/Alipay.php里,方法里有一句

if (isset($data[‘fund_bill_list’])) {
d a t a [ ′ f u n d b i l l l i s t ′ ] = h t m l s p e c i a l c h a r s d e c o d e ( data['fund_bill_list'] = htmlspecialchars_decode( data[fundbilllist]=htmlspecialcharsdecode(data[‘fund_bill_list’]);
}

在这里打印$data[‘fund_bill_list’]发现里面的引号被转义了。
解决方法:使用stripslashes()方法移除转义:

if (isset($data[‘fund_bill_list’])) {
d a t a [ ′ f u n d b i l l l i s t ′ ] = s t r i p s l a s h e s ( h t m l s p e c i a l c h a r s d e c o d e ( data['fund_bill_list'] = stripslashes( htmlspecialchars_decode( data[fundbilllist]=stripslashes(htmlspecialcharsdecode(data[‘fund_bill_list’]) );
}
————————————————
版权声明:本文为CSDN博主「毕竟我是大神」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sbchei/article/details/115636045

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 ThinkPHP 框架中的官方扩展 think-pay 来实现微信支付功能。具体操作可以参考如下步骤: 1. 安装 think-pay 扩展 在项目根目录下执行以下命令: ``` composer require yansongda/pay -vvv ``` 2. 配置支付参数 在 config 目录下创建 pay.php 配置文件,填写微信支付相关参数,例如: ```php <?php return [ // 微信支付参数 'wechat' => [ 'appid' => 'your_appid', 'mch_id' => 'your_mch_id', 'key' => 'your_key', 'notify_url' => 'your_notify_url', 'cert_client' => 'path/to/your/apiclient_cert.pem', // optional,退款、红等需要用到 'cert_key' => 'path/to/your/apiclient_key.pem', // optional,退款、红等需要用到 ], ]; ``` 3. 编写支付代码 在控制器中编写支付代码,例如: ```php <?php namespace app\index\controller; use think\Controller; use think\facade\Config; use Yansongda\Pay\Pay; class PayController extends Controller { // 微信支付 public function wechatPay() { // 获取支付参数 $params = [ 'out_trade_no' => 'your_out_trade_no', // 商户订单号 'total_amount' => 1, // 订单总金额,单位为分 'subject' => 'your_subject', // 订单标题 ]; // 发起微信支付 $pay = Pay::wechat(Config::get('pay.wechat'))->app($params); // 返回支付结果 return $pay; } } ``` 4. 处理支付结果 在支付回调页面中处理支付结果,例如: ```php <?php namespace app\index\controller; use think\Controller; use think\facade\Request; use think\facade\Config; use Yansongda\Pay\Pay; class NotifyController extends Controller { // 微信支付回调 public function wechatNotify() { // 获取支付回调参数 $data = Request::param(); // 处理支付回调 $pay = Pay::wechat(Config::get('pay.wechat'))->verify($data); if ($pay->return_code === 'SUCCESS' && $pay->result_code === 'SUCCESS') { // 支付成功,处理业务逻辑 // ... // 返回支付成功结果 return Pay::wechat(Config::get('pay.wechat'))->success(); } else { // 支付失败,返回支付失败结果 return Pay::wechat(Config::get('pay.wechat'))->fail(); } } } ``` 以上就是使用 ThinkPHP 实现微信支付的基本步骤,具体细节还需根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值