seeion_key 是每次都获取的, appkey 也是现网的,但是一直提示签名错误,哪位大佬给看看吧
public function index($name = '你好,ysadmin')
{
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=是正确的&secret=是正确的&js_code='.input('code').'&grant_type=authorization_code';
$se = file_get_contents($url);
$se = json_decode($se,true);
$mchid = '1722152560';
$ddcode = '175273865318685216';
$description = 'spgm';
$appkey = '使用的现网的正确的';
$session_key = $se['session_key'];
$postdata = [];
$postdata['mchid'] = $mchid;
$postdata['out_trade_no'] = $ddcode;
$postdata['description'] = $description;
$postdata['amount'] = [
'order_amount'=>1,
'currency'=>'CNY',
];
$postdata['env'] = 0;
$postdata = json_encode($postdata);
$paySign = $this->calc_pay_sig('requestCommonPayment',$postdata,$appkey);
$signature = $this->calc_signature($postdata,$session_key);
echo json_encode(array("code" => 200, "msg" => "获取成功",'data'=>[
'paySign'=>$paySign,
'signature'=>$signature,
'signData'=>$postdata,
'mode' => "retail_pay_goods",
]));
die;
}
public function calc_pay_sig($uri, $post_body, $appkey)
{
$temp = $uri . '&' . $post_body;
return hash_hmac('sha256', $temp, $appkey);
}
public function calc_signature($post_body, $session_key)
{
return hash_hmac('sha256', $post_body, $session_key);
}
前端这样