小猪微电商微信支付问题修复与注意事项
需积分: 10 40 浏览量
更新于2024-09-09
收藏 1KB TXT 举报
在处理小猪微电商(Wechat Pay for Xiaozhu Weidian)的微信支付功能时,用户遇到了一个问题。问题出在一个PHP文件中,具体是在`wap/pay.php`的166行和171行。原本的代码试图获取微信公众号授权服务的access_token,但因为第166行获取到的`$component_access_token_arr`不是一个有效的数组,导致后续逻辑中的错误检查出错,提示"与微信通信失败"。
解决方法是删除错误的错误码检查,将原来的代码:
```php
if($component_access_token_arr['errcode']){
tips('与微信通信失败,请重试。');
}
```
改为:
```php
$result=Http::curlGet('https://api.weixin.qq.com/sns/oauth2/component/access_token?appid='.$weixin_bind_info['authorizer_appid'].'&code='.$_GET['code'].'&grant_type=authorization_code&component_appid='.$config['wx_appid'].'&component_access_token='.$component_access_token_arr['errcode']);
```
改为:
```php
$result=Http::curlGet('https://api.weixin.qq.com/sns/oauth2/component/access_token?appid='.$weixin_bind_info['authorizer_appid'].'&code='.$_GET['code'].'&grant_type=authorization_code&component_appid='.$config['wx_appid'].'&component_access_token='.$component_access_token_arr);
```
此外,在`source/class/pay/Weixinnewpay/WxPayPubHelper.class.php`文件的2542行,涉及到一个针对iOS系统的支付接口,其中的时间戳`$timeStamp`在转换为JSON对象时存在问题。原代码:
```php
$jsApiObj['timeStamp']=$timeStamp;
```
由于iOS系统的要求,时间戳必须转换为字符串类型,因此应修改为:
```php
$jsApiObj['timeStamp']=(string)$timeStamp;
```
这样修改后,可以确保微信支付在iOS设备上正常工作,避免了因数据类型不匹配导致的支付失败错误。这个修复涉及到了OAuth2授权流程的适配以及前端支付接口的兼容性优化,对于开发人员来说,理解并正确处理这种跨平台兼容性问题至关重要。
2018-04-11 上传
120 浏览量
2020-08-18 上传
hglich
- 粉丝: 3
- 资源: 3
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全