微信支付 微信JSAPI支付

2021-08-14 06:52:54 字數 2937 閱讀 3455

pay.php(/baby/extend/wx/pay.php)

<?php

namespace wx;

class pay

}/**

* 通過redirecturi獲取授權資訊

* @return mixed

*/public function getauthinfo()

//通過code換取網頁授權資訊

$res = $this->_curlgetreq($curl);

$authinfo = '';

if ($res['tag'])

}return $authinfo;

}/**

* 下單支付

* @param $param

* @return array|string

*/public function topay($param)

$content = $this->toarr($res);

if (!empty($content) && is_array($content))

}if (!empty($content['return_code']))

}$time = time();

settype($time, "string");

$resdata = array(

'noncestr' => strval($content['nonce_str']),

'package' => 'prepay_id=' . strval($content['prepay_id']),

'signtype' => 'md5',

'timestamp' => $time

);$resdata['paysign'] = $this->makesign($resdata);

}return json_encode($resdata);

}/**

* 產生隨機字串,不長於32位

* @param int $length

* @return string

*/public function getnoncestr($length = 32)

return $str;

}/**

* 生成簽名

* @param $unifiedorder

* @return string

*/public function makesign($unifiedorder)

/*** 格式化引數格式化成url引數

* @param $unifiedorder

* @return string

* @internal param $unifiedorder

*/public function tourlparams($unifiedorder)

}$buff = trim($buff, "&");

return $buff;

}/**

* 輸出xml字元

* @param $unifiedorder

* @return string

*/public function toxml($unifiedorder)

else

}$xml .= "";

return $xml;

}/**

* 將xml轉為array

* @param $xml

* @return mixed

*/public function toarr($xml)

/*** curl get request

* @param $url

* @return array

*/public function _curlgetreq($url)

return array(

'tag' => true,

'msg' => json_decode($res));}

/*** 以post方式提交xml到對應的介面url

* @param $xml

* @param $url

* @return mixed

*/public function postxmlcurl($url, $xml)

else

}/**

* 獲取ip

* 生成16位訂單號

* @return string

*/public function generateordernum()

}

簡單的支付類已經ok了,現在差呼叫層了,**如下:

test.php(

)

<?php

use think\controller;

use think\request;

class test extends controller

return $this->fetch('index/test');

}//非同步通知沒有做,後續補充~

public function notify()

}

呼叫層的**也已經ok了,最後就差模板了,如下:

該筆訂單支付金額為1分錢

1分錢也是愛

剁手吧

微信支付JSAPI支付

這裡是報錯 下面是前端拿到資料後的一些操作 var jsapi ajax success function str function jsapicall function callpay else if document.attachevent else 把乙個官方sdk整合到thinkphp框架中...

微信支付JSAPI支付

1.介紹 2.商戶號配置 開發jsapi支付時,在統一下單介面中要求必傳使用者openid,而獲取openid則需要您在公眾平台設定獲取openid的網域名稱 只有被設定過的網域名稱才是乙個有效的獲取openid的網域名稱,否則將獲取失敗。由於我們公司只需要獲取code調取後台介面換取openid,...

微信支付JSAPI

應用場景有 我們這裡採用的是pc 場景。1 申請入口 登入商戶平台 產品中心 我的產品 支付產品 jsapi支付 2 瀏覽開發文件 這裡面幾乎介紹了全部流程。商戶號 公眾平台的商戶號 b 在公眾平台設定網頁授權網域名稱 開發jsapi支付時,在統一下單介面中要求必傳使用者openid,而獲取open...