相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
php實現(xiàn)微信掃碼支付
代碼中包含四個文件createUrl.php、ArrayToXML.php、returnGoodsUrl.php、notifyUrl.php 。
createUrl.php:創(chuàng)建微信二維碼支付鏈接
<?php /** * @author chantrans * 本頁面的作用是生成商品二維碼鏈接 */ //測試 echo createUrl("12314124"); /** * 產(chǎn)生隨機字符串 */ function getNonceStr() { $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $noceStr = ""; for ($i = 0; $i < 32; $i++) { $noceStr .= $chars[ mt_rand(0, strlen($chars) - 1) ]; } $oldNonceStr = $noceStr; return $noceStr; } /** * 二維碼掃碼鏈接構(gòu)造方式: * weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXXX&productid=XXXXXX×tamp=XXXXXX&noncestr=XXXXXX * appid 是字段名稱:公眾號id;字段來源:商戶注冊具有支付權(quán)限的公眾號成功后即可獲得;傳入方式:由商戶直接傳入。 timestamp 是字段名稱:時間戳;字段來源:商戶生成從1970 年1 月1 日00:00:00 至今的秒數(shù),即當前的時間;由商戶生成后傳入。取值范圍:32 字符以下 noncestr 是字段名稱:隨機字符串;字段來源:商戶生成的隨機字符串;取值范圍:長度為32 個字符以下。由商戶生成后傳入。取值范圍:32 字符以下 productid 是字段名稱:商品唯一id;字段來源:商戶需要定義并維護自己的商品id,這個id 與一張訂單等價,微信后臺憑借該id 通過Post商戶后臺獲取交易必須信息。由商戶生成后傳入。取值范圍:32字符以下 sign 是字段名稱:簽名;字段來源:對前面的其他字段與appKey 按照字典序排序后,使用SHA1 算法得到的結(jié)果。由商戶生成后傳入。參與sign 簽名的字段包括:appid、timestamp、noncestr、productid 以及appkey。 */ function createUrl($productid){ $app_id = "wxbce29784bdd01454"; //公眾號appid $app_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";//公眾號支付請求中用于加密的密鑰Key,可驗證商戶唯一身份,PaySignKey對應(yīng)于支付場景中的appKey值。 $nonce_str =getNonceStr(); $time_stamp = strtotime("now"); //對所有需要傳入的參數(shù)加上appkey作一次key=value字典序的排序 $keyvaluestring = "appid=".$app_id."&appkey=".$app_key."&noncestr=".$nonce_str."&productid=".$productid."×tamp=".$time_stamp; $sign = sha1($keyvaluestring).""; $url = "weixin://wxpay/bizpayurl?sign=".$sign."&appid=".$app_id."&productid=".$productid."×tamp=".$time_stamp."&noncestr=".$nonce_str.""; return $url; }