微信小程序> 微信小程序实现微信支付功能,,,-微信小程序实现微信支付功能-微信小程序支付代码

微信小程序实现微信支付功能,,,-微信小程序实现微信支付功能-微信小程序支付代码

浏览量:1533 时间: 来源:可爱的狼
1.

这里我直接上代码,附有注释,直接把我的代码粘贴一下就可以用了,也是自己走了好多的弯路。。,写在博客里做个记录

2.

直接把里面的参数替换成你的就可以了,前提是你要开通的有微信支付功能,需要商户号,appid,appsecret,openid,

3.

openid的获取比较简单,我再写一篇博客做介绍,不懂得可以私聊我

4.

//小程序端代码:

5.

pay:function(){

6.

varthatthis

7.

wx.getStorage({

8.

key:'openid',

9.

success:function(res){

10.

wx.request({

11.

//这里是后台的处理方法,url是自定义的,直接换成你自己的后台处理方法即可,Wx_Pay这个方法在下面写的有//后台用的php做处理,java的可以参考方法,道理都是一样的

12.

url:url+'Wx_Pay',

13.

data:{//用户的openidopenid:res.data,

14.

fee:that.data.totalPrice,//支付金额

15.

details:that.data.goodsList[0].goods_name,//支付商品的名称

16.

},

17.

success:function(result){

18.

if(result.data){

19.

//out_trade_nores.data['out_trade_no'];

20.

wx.requestPayment({

21.

timeStamp:result.data['timeStamp'],

22.

nonceStr:result.data['nonceStr'],

23.

package:result.data['package'],

24.

signType:'MD5',

25.

paySign:result.data['paySign'],

26.

'success':function(successret){

27.

console.log('支付成功');//获取支付用户的信息

28.

wx.getStorage({

29.

key:'userInfo',

30.

success:function(getuser){//加入订单表做记录

31.

wx.request({

32.

url:url+'Wx_AddOrder',

33.

data:{

34.

uname:getuser.data.nickName,

35.

goods:that.data.goodsList[0].goods_name,

36.

price:that.data.totalPrice,

37.

openid:res.data,

38.

},

39.

success:function(lastreturn){

40.

console.log("存取成功");

41.

}

42.

})

43.

},

44.

})

45.

},'fail':function(res){

46.

}

47.

})

48.

}

49.

}

50.

})

51.

},

52.

})

53.

},

54.

//后台

//微信支付publicfunctionWx_Pay(){$requestRequest::instance();$fee$request-param('fee');$details$request-param('details');//商品的详情,比如iPhone8,紫色//$fee0.01;//举例充值0.01$appid'appid';//appid$body$details;//'金邦汇商城';//'【自己填写】'$mch_id'1486742092';//'你的商户号【自己填写】'$nonce_str$this-nonce_str();//随机字符串$notify_url'https://zys.jinbh.cn/admin/Api/Wx_Speech';//回调的url【自己填写】';$openid$request-param('openid');//'用户的openid【自己填写】';$out_trade_no$this-order_number($openid);//商户订单号$spbill_create_ip'123.206.45.131';//'服务器的ip【自己填写】';$total_fee$fee*100;//因为充值金额最小是1而且单位为分如果是充值1元所以这里需要*100$trade_type'JSAPI';//交易类型默认//这里是按照顺序的因为下面的签名是按照顺序排序错误肯定出错$post['appid']$appid;$post['body']$body;$post['mch_id']$mch_id;$post['nonce_str']$nonce_str;//随机字符串$post['notify_url']$notify_url;$post['openid']$openid;$post['out_trade_no']$out_trade_no;$post['spbill_create_ip']$spbill_create_ip;//终端的ip$post['total_fee']$total_fee;//总金额最低为一块钱必须是整数$post['trade_type']$trade_type;$sign$this-sign($post);//签名$post_xml'xmlappid'.$appid.'/appidbody'.$body.'/bodymch_id'.$mch_id.'/mch_idnonce_str'.$nonce_str.'/nonce_strnotify_url'.$notify_url.'/notify_urlopenid'.$openid.'/openidout_trade_no'.$out_trade_no.'/out_trade_nospbill_create_ip'.$spbill_create_ip.'/spbill_create_iptotal_fee'.$total_fee.'/total_feetrade_type'.$trade_type.'/trade_typesign'.$sign.'/sign/xml';//统一接口prepay_id$url'https://api.mch.weixin.qq.com/pay/unifiedorder';$xml$this-http_request($url,$post_xml);$array$this-xml($xml);//全要大写if($array['RETURN_CODE']'SUCCESS'$array['RESULT_CODE']'SUCCESS'){$timetime();$tmp'';//临时数组用于签名$tmp['appId']$appid;$tmp['nonceStr']$nonce_str;$tmp['package']'prepay_id'.$array['PREPAY_ID'];$tmp['signType']'MD5';$tmp['timeStamp']"$time";$data['state']1;$data['timeStamp']"$time";//时间戳$data['nonceStr']$nonce_str;//随机字符串$data['signType']'MD5';//签名算法,暂支持MD5$data['package']'prepay_id'.$array['PREPAY_ID'];//统一下单接口返回的prepay_id参数值,提交格式如:prepay_id*$data['paySign']$this-sign($tmp);//签名,具体签名方案参见微信公众号支付帮助文档;$data['out_trade_no']$out_trade_no;}else{$data['state']0;$data['text']"错误";$data['RETURN_CODE']$array['RETURN_CODE'];$data['RETURN_MSG']$array['RETURN_MSG'];}echojson_encode($data);}//随机32位字符串privatefunctionnonce_str(){$result'';$str'QWERTYUIOPASDFGHJKLZXVBNMqwertyuioplkjhgfdsamnbvcxz';for($i0;$i32;$i++){$result.$str[rand(0,48)];}return$result;}//生成订单号privatefunctionorder_number($openid){//date('Ymd',time()).time().rand(10,99);//18位returnmd5($openid.time().rand(10,99));//32位}//签名$data要先排好顺序publicfunctionsign($data){$stringA'';foreach($dataas$key$value){if(!$value)continue;if($stringA)$stringA.''.$key."".$value;else$stringA$key."".$value;}$wx_key'Zhangyusheng19810318015729366660';//申请支付后有给予一个商户账号和密码,登陆后自己设置key$stringSignTemp$stringA.'key'.$wx_key;//申请支付后有给予一个商户账号和密码,登陆后自己设置keyreturnstrtoupper(md5($stringSignTemp));}//curl请求啊functionhttp_request($url,$datanull,$headersarray()){$curlcurl_init();if(count($headers)1){curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);}curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if(!empty($data)){curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_POSTFIELDS,$data);}curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$outputcurl_exec($curl);curl_close($curl);return$output;}//获取xmlprivatefunctionxml($xml){$pxml_parser_create();xml_parse_into_struct($p,$xml,$vals,$index);xml_parser_free($p);$data"";foreach($indexas$key$value){if($key'xml'||$key'XML')continue;$tag$vals[$value[0]]['tag'];$value$vals[$value[0]]['value'];$data[$tag]$value;}return$data;}//微信支付结束

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎