admin 发表于 2024-5-26 12:57:54

微擎JSAPI支付由服务商发起支付走过的坑总结

1、jsapi支付调用的framework/builtin/core/site.php中的 public function doMobilePay() {方法。
2、sprintf('%06d', 14) = 000014;

3、然后调用当前文件的private function doMobilePayWechat($paylog = array()) {方法。

4、然后调用framework/model/payment.mod.php中的function wechat_proxy_build($params, $wechat) {方法。

5、然后调用4文件中的function wechat_build($params, $wechat, $is_site_store = false) {方法,version=2是版本2,JSAPI支付走2。

经过研判,问题出在:问题所在的目标文件:根目录/framework/builtin/core/site.php在193行开始的服务商支付或借用支付中应该提供sub_appid,但当前系统代码中没有判断是服务商支付并提供sub_appid,我的解决方案是加入了服务商支付判断,然后提供sub_appid,代码如下:
//服务商支付
if (intval($wechat_payment['switch']) == 3) {
$wechat_payment['sub_appid'] = $wechat_payment['appid'];
}

服务商公众号应该添加配置网页授权域名
页: [1]
查看完整版本: 微擎JSAPI支付由服务商发起支付走过的坑总结