微信开发-第五章(2)-接入动态数据遇到的问题

<blockquote>因为GetOpenid() 方法里有个Header跳转的操作,所以在GetOpenid()方法之前生成的订单信息会丢失,所以在这里要做一下处理:</blockquote>

$openId = $tools->GetOpenid($json);
//print_r($_GET);

    $json_back   = '';
    $wx_back_arr = [];
    foreach ($_GET as $k => $v) {
        if($v == null){
            $json_back .= $k ;
        }else{
            $wx_back_arr[$k] = $v ;
        }

    }
    $json_arr = json_decode($json_back,true);
    print_r($json_arr);
    echo '<br>';
    print_r($wx_back_arr);  

//  echo $openId;
    exit;

在打印366行的$order时,会报这样的错误:

Array
(
[return_code] => FAIL
[return_msg] => invalid total_fee /  签名错误
)


<blockquote>原因:充值金额0.01,在传给GetOpenid() 方法后,再传回控制器时,会变成0_01,所以在这里你,充值金额以分为单位(微信官方也说了,total_fee 单位为分,只能为整数)</blockquote>

所以在刚收到时就给其变为分,并转换成int型,因为有时候,float(7) 后边莫名出现7.000000000001 这样的情况:

<blockquote>不太确定在Header的url传参会不会影响URL注册问题,估计应该不会,因为在Header后,微信服务器会在URL加入code和state,另一个办法是可以不用get传参,把订单数据存到cookie里</blockquote>

在微信公众号支付里:


由于392行函数的调用,会导致重新请求该页面,此时,350里收不到get参数,从而导致352行的写法会报错,换用353行的写法就行了。

392行里的coin参数是作为标记用的,用来在同一项目的不同地方调用该方法。

重定向时,get到的参数的保存问题:

订单金额的问题:如果金额为0会报下面的错误:


<blockquote>FatalThrowableError
in WxPay.Api.php line 326:Cannot throw objects that do not implement Throwable</blockquote>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,903评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,955评论 6 13
  • 一手打伞,一手扶车,没有影响心情
    年糕的日常阅读 1,301评论 0 0
  • 文/鱼筱豆 上周末,早上起床,第一眼就看到咪蒙的公众号更新了一篇文章叫做《每一个职场妈妈,都欠孩子一个对不起》。 ...
    鱼筱豆阅读 3,008评论 0 2
  • 特别说明,为便于查阅,文章转自https://github.com/getify/You-Dont-Know-JS...
    杀破狼real阅读 3,550评论 0 0

友情链接更多精彩内容