为了购买积分满足这个需求 我们需要二开,跟官方手册和实际PayServices有差距,所有怎么实现自定义生成统一下单??
这个官方提到的
$payServices = new PayServices();
$payType = '支付类型';//支持类型 routine weixinh5 weixin
$openid = '用户的openid';//当$payType == 'weixinh5 ' 时$openid可为空
$orderInfo['order_id'] = '订单号';
$orderInfo['pay_price'] = '订单金额';//以元为单位
$successAction = 'test' ;//支付成功回调执行方法
$body = '冬装上新,潮流男款西裤';
$payServices->pay($payType, $openid, $orderInfo['order_id'], $orderInfo['pay_price'], $successAction, $body);
crweb实际上的PayServices
$payServices = new PayServices();
$payType = "routine";
$user = app()->make(WechatUserServices::class);$openid = $user->uidToOpenid($request->uid(),$payType);
$order_id = "E" . md5(time());
$pay_price = 0.01;
$unipay = $payServices->pay($payType,$order_id,$pay_price,"test","test");
你们发现了吗有一个参数不一样,就是他opened
下面PayServices里面pay函数根本没有官方说的opened参数
public function pay(string $payType, string $orderId, string $price, string $successAction, string $body, array $options = [])
所以导致了缺少opened这样的一个错误
{
"status":400,
"msg":"缺少openid",
"data":{}
}
所以这么解决这个自定义统一下单???官方求解