当前位置: 首页 > news >正文

北京医疗网站建设公司排名杭州设计院

北京医疗网站建设公司排名,杭州设计院,广州市安全教育平台登录入口,做钓鱼网站的公司最近做了一个小程序支付#xff0c;发现网上还是有很多问题的今天就把整个思路和代码贴给大家并详细的讲解一下 思路#xff1a;1.预支付2.预支付返回的prepay_id 进行重新组建数据#xff0c;搭建需要的参数调用js进行移动端支付3.在2步骤中上传的notify_url地址就是回调地…最近做了一个小程序支付发现网上还是有很多问题的今天就把整个思路和代码贴给大家并详细的讲解一下 思路1.预支付2.预支付返回的prepay_id 进行重新组建数据搭建需要的参数调用js进行移动端支付3.在2步骤中上传的notify_url地址就是回调地址记住小程序这个地址不允许有参数切记在这个地址中处理你的服务器的逻辑 准备的数据1.小程序appid2.小程序绑定的商户号3.商户号申请或者重置后的key值 代码1.准备配置公共配置参数 static $wxpayconf [wx_smallprogram_appidwx13212312313123,// 小程序appidmch_id12312345454 ,// 小程序商户号keyGjanuarygaoqingsong,appsecret1231231212daseqe123213,notify_urlhttp://www.gaoqingsong.com/index.php?,// 支付回调地址];2.预支付部分其实就是统一下单和微信公众号的都一样不过这里我还要贴出来 支付环境配置部分// 统一下单,并且直接支付public function unifiedorder($paydata,$orderSn){// 初始化小程序支付配置$wxpayconf self::$wxpayconf;$userIP $_SERVER[REMOTE_ADDR];$sign[appid] $appid $wxpayconf[wx_smallprogram_appid];$sign[mch_id] $mch_id $wxpayconf[mch_id];$sign[nonce_str] $nonce_str $this-nonceStr();$sign[body] $body Gjanury测试商品;$sign[out_trade_no] $out_trade_no $orderSn;$sign[total_fee] $total_fee 1/*$paydata[actualpayment] * 100*/;// 单位是分 1元 100分$sign[spbill_create_ip] $spbill_create_ip $userIP;// 终端客户端ip$sign[trade_type] $trade_type JSAPI;$sign[openid] $openid $paydata[openid];$sign[notify_url] $notify_url $wxpayconf[notify_url];;$sign[sign] $this-getSign($sign,$wxpayconf[key]);// 统一下单接口$url https://api.mch.weixin.qq.com/pay/unifiedorder;$data $this-arrayToXml($sign);$res $this-postXmlCurl($data,$url);if($res[errNum] ! 0){echo json_encode($res);die;}else{$res $res[info];}if($res[return_code] SUCCESS $res[result_code] SUCCESS){$prepay_id $res[prepay_id];// prepay_id的为预支付// 小程序提供的是接口而已。直接调出即可// 支付环境参数配置部分$yuzhifudata[appId] $wxpayconf[wx_smallprogram_appid];$yuzhifudata[package] prepay_id.$prepay_id;$yuzhifudata[timeStamp] (string)time();$yuzhifudata[nonceStr] $this-nonceStr();$yuzhifudata[signType] MD5;$yuzhifudata[paySign] $this-getSign($yuzhifudata,$wxpayconf[key]);exit(json_encode($yuzhifudata));}else{if($res[return_code] FAIL){$info[return_msg] $res[return_msg];}if($res[result_code] FAIL){$info[err_code] $res[err_code];$info[err_code_des] $res[err_code_des];}exit($info);}// 签名方法private function getSign($params, $key1){//签名步骤一按字典序排序数组参数ksort($params);$singstring ;foreach ($params as $key $value) {$singstring . .$key . . $value;}$string $singstring . key . $key1;//签名步骤三MD5加密$string ltrim($string,);$string md5($string);//签名步骤四所有字符转为大写$result strtoupper($string);return $result;}// 数组转xmlpublic function arrayToXml($arr,$is_arrayfalse){ if (!$is_array){ $xml xml; } foreach ($arr as $key$val){ if(is_array($val)){ $xml..$key..$this-arrayToXml($val,true)./.$key.; }else{ $xml..$key..$val./.$key.; } } if (!$is_array){ $xml./xml; }return $xml; }3.小程序js部分wx.request({url: http://www.gaoqingsong.com/index.php?mxxxxapayment, data: {tablenumber: tablenumber,// 下单桌号orderdetail: JSON.stringify(that.data.goods),// 点餐的详情对象转化成json字符串方便后台进行存储调用amount: that.data.totalprice,// 订餐的总价格actualpayment: that.data.totalprice,// 实际付款金额openid: useropenid,// 实际付款金额wxheadimg: wxinfo.avatarUrl,wxname: wxinfo.nickName,},method: POST,header: {content-type: application/x-www-form-urlencoded// post方式提交用这种header头},success: function (res) {wx.navigateTo({url: ../paysuccess/paysuccess});var timeStamp res.data.timeStamp;wx.requestPayment({timeStamp: timeStamp,nonceStr: res.data.nonceStr,package: res.data.package,signType: res.data.signType,paySign: res.data.paySign,success: function (res) {if(res.errMsg requestPayment:ok){wx.navigateTo({url: ../paysuccess/paysuccess});}},fail: function (res) {console.log(res);},complete: function (res) { }})}})4.回调页面代码$receipt $_REQUEST;if($receiptnull){$receipt file_get_contents(php://input);}if($receipt null){$receipt $GLOBALS[HTTP_RAW_POST_DATA];}$post_data $this-xml_to_array($receipt); $postSign $post_data[sign];unset($post_data[sign]);ksort($post_data);// 对数据进行排序$str $this-ToUrlParams($post_data);//对数组数据拼接成keyvalue字符串$user_sign strtoupper(md5($post_data)); //再次生成签名与$postSign比较$ordernumber $post_data[out_trade_no];// 订单可以查看一下数据库是否有这个订单if($post_data[return_code]SUCCESS$postSign){// 查询订单是否已经支付$result M(userorder)-where(ordernumber .$ordernumber.)-select();if($result){if($result[0][paystatus] 0){// 进行更改支付成功状态$obj array(paystatus 1,);$res M(userorder)-where(ordernumber .$ordernumber.)-save($obj);file_put_contents(gg.txt,$res);if($res){$this-return_success();}}else{$this-return_success();}}else{echo 微信支付失败,数据未存在该订单。;}}else{// 写个日志记录file_put_contents(wxpayerrorlog.txt,$post_data[return_code].PHP_EOL, FILE_APPEND);echo 微信支付失败;}5.效果图1.web开发端效果2.移动端效果
http://www.dnsts.com.cn/news/102182.html

相关文章:

  • 网站如何做支付接口山东省住房和城乡建设厅网站教育中心
  • 彩票开奖网站建设linux wordpress 域名
  • 怎么查看网站备案号wordpress密码爆破
  • 如何找网站推广推荐个做淘宝主图视频的网站
  • 高港区企业网站建设学校设计网站方案
  • 徐州网站建设xlec微信管理系统软件
  • 南昌专业的电商网站开发公司朔州做网站的公司
  • 江西南昌网站建设公司哪家好推广话术
  • 大连网络备案做网站做c2c网站的弊端
  • 网站建设课程设计格式wordpress图片资源主题
  • 开通网站需要多少钱青岛手机网站设计公司
  • 网站用动态图片做背景怎么写网站备案主办单位错误
  • 开发一个网站需要哪些步骤山东青?u68元建网站
  • 网站建设佰金手指科杰十一昆山网站优化建设
  • 微信导航网站怎么做的怎么制作免费网站教程视频
  • 杭州公司网站建设套餐社群电商的运营模式
  • htmi 个人小网站 模板网页游戏推荐排行
  • 青岛网站建设定制开发wordpress交易平台
  • 假冒中国建设银行的网站烟花外贸流程
  • 网站代码在哪里写暴雪退款申请快速入口
  • 学校网站的建设目标南阳建设重要区域中心城市网站
  • 重庆专业的网站建设品牌管理
  • 最好的网站服务器硬件开发环境
  • 玩具 东莞网站建设 技术支持景区网站模板
  • 开淘宝店和做网站有什么区别网站建设请示怎么写
  • 深圳大型网站建设湛江免费建站哪里有
  • 家具公司网站源码陕西seo顾问服务
  • 网络营销的盈利模式山东网站排名优化公司
  • 网站的交互怎么做网站需要怎么做的
  • 深圳大型商城网站建设网站建设一个购买链接