|
注意报错表象:可能是prepay_id 没找到
还有一个可能: PC端 和手机端 生成的商户号,重复了 ,[如果单单生成PC端 或者单单生成 手机端都没有问题]
- // 返回值为微信支付的配置项
- public function createOrder($id)
- {
- // 拿着这个案件的ID 重新 发起对朱自宇的请求
- $config = session('wechat_config');
-
- // dd($config['java_url'],$id);
- // dd($config);
-
- $url = $config['java_url'].'pt/patentMain/weiXinPay/payInfo/id/'.$id;
-
- $zdata = $this->send_request($url,"GET");
-
- $zdata = json_decode($zdata['data']);
-
- $useData = $zdata->data;
-
- if($zdata->status !=200){
- return ['status'=>0,'message'=>'获取失败,当前ID 不被 相关系统 适配,请联系客服'];
- }
-
- // dd($useData->fee,$useData->lateFee);
-
- // dd($data);
- // return ['status'=>200,'data'=>$zdata['data']];
-
-
-
- // OrdPayLogs
-
- // 对数据库的判断如下
- // 1. 查询是否有该条数据, 是的话更新 这个值的 fee.与 lateFee
- // 2. 如果没有 那么 直接增加 就可以了
-
- $ord_id = $id;
-
- // 已经登录过
- $user = session('wechat_user');
-
- // dd( $user );
-
- $openid = $user['id'];
-
- $ordData = OrdPayLogs::where([
- 'ord_id'=>['=' => $ord_id] ,
- 'company_id'=>['='=> $config['company_id']],
- 'year'=>['=' => $useData->year] ,
- ])->first();
-
- $payId = 0;
-
- if($ordData === null){
-
- $order = new OrdPayLogs;
- $order->ord_id = $ord_id;
- $order->wx_id = $config['id'];
- $order->openid = $openid;
- $order->name = $useData->ptNameText;
- $order->fee = $useData->fee;
- $order->late_fee = $useData->lateFee;
- $order->company_id = $config['company_id'];
- $order->payment_status = 1;
- $order->total_price = $useData->fee + $useData->lateFee;
- $order->year = $useData->year;
- $order->save();
-
- // dd($order->id);
- $payId = $order->id;
- }else{
-
- // 如果是 那么修改当前数据
- OrdPayLogs::where([
- 'ord_id'=>['=' => $ord_id] ,
- 'company_id'=>['='=> $config['company_id']],
- 'year'=>['=' => $useData->year] ,
- ])->update([
- 'fee' => $useData->fee,
- 'late_fee' =>$useData->lateFee,
- 'total_price' => $useData->fee + $useData->lateFee
- ]);
-
- $payId = $ordData->id;
-
- if($ordData->payment_status ==3){
- return [
- 'state'=>201,
- 'message' =>'当前订单已完成支付',
- ];
- }
- // dd('这是修改');
- }
-
- // dd($payId);
-
- // dd(222);
-
- // 开始生成支付配置 ======
- $payConfig = [
- // 必要配置
- 'app_id' => $config['app_id'],
- 'mch_id' => $config['mch_id'],
- 'key' => $config['key'], // API 密钥 在商户的API 安全界面设置
- // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
- 'cert_path' => '', // XXX: 绝对路径!!!!
- 'key_path' => '', // XXX: 绝对路径!!!!
-
- 'notify_url' => 'http://wx.qancloud.com/out/payback', // 你也可以在下单时单独设置来想覆盖它
- ];
-
- // dd($payConfig );
-
- $app = Factory::payment($payConfig);
- $result = $app->order->unify([
- 'body' => '专利费用缴纳'.$useData->ptNameText,
- 'out_trade_no' => $payId,
- // 'total_fee' => ($useData->fee + $useData->lateFee)*100,
- 'total_fee' => 1,
- 'spbill_create_ip' => '', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址
- 'notify_url' => 'http://wx.qancloud.com/out/payback', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
- 'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型
- 'openid' => $openid,
- ]);
-
- // dd($result);
- if(isset($result['prepay_id'])){
-
- $payment = Factory::payment($payConfig);
- $jssdk = $payment->jssdk;
-
- $json = $jssdk->bridgeConfig($result['prepay_id']);
-
-
- return [
- 'state'=>200,
- 'message' =>'获取信息成功',
- 'data' => json_decode($json)
- ];
- }else{
-
- return [
- 'state'=>202,
- 'message' =>'订单错误'.$result['err_code_des'],
- 'data' => $result
- ];
- }
-
-
-
-
-
- }
复制代码 贴一个 全代码
|
|