微信小程序,PHP支付的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序,PHP支付的问题相关的知识,希望对你有一定的参考价值。

//支付 public function doPagePay() global $_W, $_GPC; include IA_ROOT.'/addons/zh_cjdianc/wxpay.php'; $res=pdo_get('cjdc_pay',array('uniacid'=>$_W['uniacid'])); $res2=pdo_get('cjdc_system',array('uniacid'=>$_W['uniacid'])); if($res2['url_name']) $res2['url_name']=$res2['url_name']; else $res2['url_name']='餐饮小程序'; $appid=$res2['appid']; $openid=$_GPC['openid'];//oQKgL0ZKHwzAY-KhiyEEAsakW5Zg $mch_id=$res['mchid']; $key=$res['wxkey']; $out_trade_no = $mch_id. time(); $root=$_W['siteroot']; if($_GPC['type']==2) pdo_update('cjdc_czorder',array('code'=>$out_trade_no),array('id'=>$_GPC['order_id'])); elseif($_GPC['type']==3) pdo_update('cjdc_hyorder',array('code'=>$out_trade_no),array('id'=>$_GPC['order_id'])); else pdo_update('cjdc_order',array('code'=>$out_trade_no),array('id'=>$_GPC['order_id'])); $total_fee =$_GPC['money']; if(empty($total_fee)) //押金 $body =$res2['url_name']; $total_fee = floatval(99*100); else $body = $res2['url_name']; $total_fee = floatval($total_fee*100); $weixinpay = new WeixinPay($appid,$openid,$mch_id,$key,$out_trade_no,$body,$total_fee,$root); $return=$weixinpay->pay(); echo json_encode($return); -----------------------------------------------$res2['url_name']=$res2['url_name']; //这是一个特定的数据库参数,怎么改成POS提交时的一个商品名称?见图,商品名称,或者留QQ或者微信,我想请教

参考技术A $weixinpay = new WeixinPay($appid,$openid,$mch_id,$key,$out_trade_no,$body,$total_fee,$root);
$body,应该是图中标红框的值
参考技术B 你这估计是直接扒下来的吧,找一个叫body的,他就是商品名称,平时多看看文档,人家文档里都写的清清楚楚的 参考技术C 支付通道我这有,可以给你个开发文档和成品DEMO作参考。 参考技术D ao1877101112 第5个回答  2018-09-30 121336224

微信小程序怎么向外部php文件传递参数

  PAY页面往 js_api_call.php 传值 获取不到的问题
  echo 是可以echo出来的 但是
  这里不写死就会报错 $key0$
  <?php
  /**
  * JS_API支付demo
  * ====================================================
  * 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
  * 成功调起支付需要三个步骤:
  * 步骤1:网页授权获取用户openid
  * 步骤2:使用统一支付接口,获取prepay_id
  * 步骤3:使用jsapi调起支付
  */
  //获取信息
  @$name="支付测试-包包";
  @$price=0.01*100;
  @$hyid=$_GET[\'hyid\'];
  @$out_trade_no=$_GET[\'num\'];//订单号
  include_once("../WxPayPubHelper/WxPayPubHelper.php");
  //使用jsapi接口
  $jsApi = new JsApi_pub();
  //=========步骤1:网页授权获取用户openid============
  //通过code获得openid
  if (!isset($_GET[\'code\']))
  
  //触发微信返回code码
  $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
  Header("Location: $url");
  else
  
  //获取code码,以获取openid
  $code = $_GET[\'code\'];
  $jsApi->setCode($code);
  $openid = $jsApi->getOpenId();
  
  //=========步骤2:使用统一支付接口,获取prepay_id============
  //使用统一支付接口
  $unifiedOrder = new UnifiedOrder_pub();
  //设置统一支付接口参数
  //设置必填参数
  //appid已填,商户无需重复填写
  //mch_id已填,商户无需重复填写
  //noncestr已填,商户无需重复填写
  //spbill_create_ip已填,商户无需重复填写
  //sign已填,商户无需重复填写
  $unifiedOrder->setParameter("openid","$openid");//商品描述
  $unifiedOrder->setParameter("body","$name");//商品描述
  //自定义订单号,此处仅作举例
  $timeStamp = time();
  $out_trade_no = WxPayConf_pub::APPID."$timeStamp";
  $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号
  $unifiedOrder->setParameter("total_fee","$price");//总金额
  $unifiedOrder->setParameter("notify_url","http://youjia.pinpai365.cn/weixinpay/demo/notify_url.php");//通知地址
  $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型
  //非必填参数,商户可根据实际情况选填
  //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号
  //$unifiedOrder->setParameter("device_info","XXXX");//设备号
  //$unifiedOrder->setParameter("attach","XXXX");//附加数据
  //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间
  //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间
  //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记
  $unifiedOrder->setParameter("attach","2");//会员ID
  $prepay_id = $unifiedOrder->getPrepayId();
  //=========步骤3:使用jsapi调起支付============
  $jsApi->setPrepayId($prepay_id);
  $jsApiParameters = $jsApi->getParameters();
  //echo $jsApiParameters;
  ?>
  <html>
  <head>
  <meta charset="utf-8">
  <title>支付页面</title>
  <script type="text/javascript">
  //调用微信JS api 支付
  function jsApiCall()
  
  WeixinJSBridge.invoke(
  \'getBrandWCPayRequest\',
  <?php echo $jsApiParameters; ?>,
  function(res)
  WeixinJSBridge.log(res.err_msg);
  if(res.err_msg == "get_brand_wcpay_requestk")
  window.location.href=\'/shop/successful.php?spmc=<?php echo $name; ?>&&price=<?php echo $price; ?>\';
  //history.go(-1);
  else
  window.location.href=\'/shop/pay.php\';
  
  
  );
  
  if (typeof WeixinJSBridge == "undefined")
  if( document.addEventListener )
  document.addEventListener(\'WeixinJSBridgeReady\', jsApiCall, false);
  else if (document.attachEvent)
  document.attachEvent(\'WeixinJSBridgeReady\', jsApiCall);
  document.attachEvent(\'onWeixinJSBridgeReady\', jsApiCall);
  
  else
  jsApiCall();
  
  </script>
  </head>
  </html>
参考技术A wx.request(
     url: 'https://www.baidu.com/api/wechat/wx_index.php',
     headers: 
       'Content-Type': 'application/json'
     ,
     data: 
       action: "index",//这个是传递到PHP文件里面的参数和值
     ,
     success: function (res) /*这个成功后,php回传的值*/
       console.log(res.data);
       that.setData(
         value: res.data
       )
     ,
     fail: function () /*这个是PHP没有收到回传值或者没有执行成功的错误提示*/
       wx.showToast(
         title: '网络错误!',
         icon: 'loading',
         duration: 1500
       )
     ,//请求失败
     complete: function ()  //请求完成后执行的函数
   )

其实微信往PHP、服务器传值,很想AJAX技术,如果想具体了解的话 可以去差这个方面的知识

以上是关于微信小程序,PHP支付的问题的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序支付API

php对接微信小程序支付

微信小程序支付成功后没有回调函数返回。

PHP实现微信小程序支付

php 微信小程序支付

微信小程序-微信支付签名验证