日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解

發布時間:2024/10/5 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信小程序 支付功能實現PHP實例詳解

前端代碼:

wx.request({

url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee',//改成你自己的鏈接

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

method:'POST',

success: function(res) {

console.log(res.data);

console.log('調起支付');

wx.requestPayment({

'timeStamp': res.data.timeStamp,

'nonceStr': res.data.nonceStr,

'package': res.data.package,

'signType': 'MD5',

'paySign': res.data.paySign,

'success':function(res){

console.log('success');

wx.showToast({

title: '支付成功',

icon: 'success',

duration: 3000

});

},

'fail':function(res){

console.log('fail');

},

'complete':function(res){

console.log('complete');

}

});

},

fail:function(res){

console.log(res.data)

}

});

后端代碼:

//支付費用

public function payJoinfee(){

$appid='wx888888888';

$openid='oCQwY0Q_pzrQpu8888888';

$mch_id='141388888';

$key='9A0A86888888888';

import('Weixin.Lib.WeixinPay');

$weixinpay = new \WeixinPay($appid,$openid,$mch_id,$key);

$return=$weixinpay->pay();

$this->response($return,'json');

}

微信支付類

/*

* 小程序微信支付

*/

class WeixinPay{

protected $appid;

protected $mch_id;

protected $key;

protected $openid;

function __construct($appid,$openid,$mch_id,$key){

$this->appid=$appid;

$this->openid=$openid;

$this->mch_id=$mch_id;

$this->key=$key;

}

public function pay(){

//統一下單接口

$return=$this->weixinapp();

return $return;

}

//統一下單接口

private function unifiedorder(){

$url='https://api.mch.weixin.qq.com/pay/unifiedorder';

$parameters=array(

'appid'=>$this->appid,//小程序ID

'mch_id'=>$this->mch_id,//商戶號

'nonce_str'=>$this->createNoncestr(),//隨機字符串

'body'=>'測試',//商品描述

'out_trade_no'=>'2015450806125346',//商戶訂單號

'total_fee'=>floatval(0.01*100),//總金額 單位 分

'spbill_create_ip'=>$_SERVER['REMOTE_ADDR'],//終端IP

'notify_url'=>'http://www.weixin.qq.com/wxpay/pay.php',//通知地址

'openid'=>$this->openid,//用戶id

'trade_type'=>'JSAPI'//交易類型

);

//統一下單簽名

$parameters['sign']=$this->getSign($parameters);

$xmlData=arrayToXml($parameters);

$return=xmlToArray(postXmlSSLCurl($xmlData,$url,60));

return $return;

}

//微信小程序接口

private function weixinapp(){

//統一下單接口

$unifiedorder=$this->unifiedorder();

$parameters=array(

'appId'=>$this->appid,//小程序ID

'timeStamp'=>''.time().'',//時間戳

'nonceStr'=>$this->createNoncestr(),//隨機串

'package'=>'prepay_id='.$unifiedorder['prepay_id'],//數據包

'signType'=>'MD5'//簽名方式

);

//簽名

$parameters['paySign']=$this->getSign($parameters);

return $parameters;

}

//作用:產生隨機字符串,不長于32位

private function createNoncestr($length = 32 ){

$chars = "abcdefghijklmnopqrstuvwxyz0123456789";

$str ="";

for ( $i = 0; $i < $length; $i++ ) {

$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);

}

return $str;

}

//作用:生成簽名

private function getSign($Obj){

foreach ($Obj as $k => $v){

$Parameters[$k] = $v;

}

//簽名步驟一:按字典序排序參數

ksort($Parameters);

$String = $this->formatBizQueryParaMap($Parameters, false);

//簽名步驟二:在string后加入KEY

$String = $String."&key=".$this->key;

//簽名步驟三:MD5加密

$String = md5($String);

//簽名步驟四:所有字符轉為大寫

$result_ = strtoupper($String);

return $result_;

}

///作用:格式化參數,簽名過程需要使用

private function formatBizQueryParaMap($paraMap, $urlencode){

$buff = "";

ksort($paraMap);

foreach ($paraMap as $k => $v){

if($urlencode)

{

$v = urlencode($v);

}

$buff .= $k . "=" . $v . "&";

}

$reqPar;

if (strlen($buff) > 0){

$reqPar = substr($buff, 0, strlen($buff)-1);

}

return $reqPar;

}

}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

總結

以上是生活随笔為你收集整理的微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。