请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

WxPayApi::unifiedOrder($config,$wxOrderData)返回参数签名的问题求助:

WxPayApi::unifiedOrder(config,config,config,wxOrderData)返回参数签名的问题求助:

private function getPaySignature($wxOrderData){
    $config = new WxPayConfig();
    $wxOrder = WxPayApi::unifiedOrder($config,$wxOrderData);
    if ($wxOrder['return_code'] != 'SUCCESS' || $wxOrder['result_code'] != 'SUCCESS'){
        Log::record($wxOrder,'error');
        Log::record('获取预支付订单失败','error');
    }
    //prepay_id
    $this->recordPreOrder($wxOrder);
    $signature = $this->sign($wxOrder,$config);
    return $signature;
}
private function sign($wxOrder,$config){
    $jsApiPayData = new WxPayJsApiPay();
    $jsApiPayData->SetAppid(config(['wx.app_id']));
    $jsApiPayData->SetTimeStamp((string)time());

    $rand = md5(time() . mt_rand(0,1000));
    $jsApiPayData->SetNonceStr($rand);

    $jsApiPayData->SetPackage('prepay_id='.$wxOrder['prepay_id']);
    $jsApiPayData->SetSignType('md5');

    $sign = $jsApiPayData->MakeSign($config);
    $rawValues = $jsApiPayData->GetValues();
    $rawValues['paySign'] = $sign;

    unset($rawValues['appId']);

    return $rawValues;
}

getPaySignature方法中的config = new WxPayConfig(),是我对SDK中的抽象接口类的重定义的一个类;我在这里建立了这个对象,是因为在WxPayApi::unifiedOrder(config,wxOrderData)和MakeSign(config)方法中都用到这个对象,在定义sign这个方法时,我也比你视频里面的多了一个参数,用来接收config这个对象,供sign里调用MakeSign方法时用;
我上面这样做是不是对的?如果是对的,那sign方法中的SetSignType(‘md5’)是不是要删除?因为我看到MakeSign方法中去调用了Config对象中对应的方法确定了签名类型。

我在小程程序开发工具中,点“申请令牌”—》支付,可以在我的小程序开发工具上面显示一个二维码,但是我用我的微信扫一下,手机微信上显示“支付验证签名失败”

正在回答 回答被采纳积分+3

3回答

草芽有芳华 2020-08-06 10:15:56

你解决这个问题了吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 the_blessed #1
    早解决了
    回复 有任何疑惑可以回复我~ 2020-08-06 10:36:26
  • 草芽有芳华 回复 提问者 the_blessed #2
    那你现在有时间帮我一下吗?我qq:1286460303。或者等你有时间的时候
    回复 有任何疑惑可以回复我~ 2020-08-06 10:39:51
7七月 2020-01-03 12:32:35

签名类型应该不是这个问题,文档发来我看下

0 回复 有任何疑惑可以回复我~
提问者 the_blessed 2020-01-01 12:13:19

我在小程程序开发工具中,点“申请令牌”---》支付,可以在我的小程序开发工具上面显示一个二维码,但是我用我的微信扫一下,手机微信上显示“支付验证签名失败”

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信