服务商模式下调用JSAPI支付需要传用户openid,但官方文档中没有详细文档只有普通商户支付的文档
普通商户支付传值
//组装支付数据
$payData = [
"body" => "商品购买",
"out_trade_no" => $order->order_no,
"total_fee" => $order->getData("actual_price"),
"trade_type" => "JSAPI",
"openid" => $this->userData["openid"],
];
如果服务商模式支付还是这样传值就会报‘appid和openid不匹配’,解决此问题只需要修改openid的键即可
$payData = [
"body" => "商品购买",
//订单号
"out_trade_no" => $order->order_no,
//支付金额
"total_fee" => $order->getData("actual_price"),
//支付方式
"trade_type" => "JSAPI",
//用户openid 其他支付方式不需传当前参数
"sub_openid" => $this->userData["openid"],
];