微信支付JsAPI

2022-07-08 20:42:12 字數 3898 閱讀 7693

開啟壓縮包,並將其中 wxpayapi_php_v3\example下的

jsapi.php

log.php

wxpay.jsapipay.php

wxpay.micropay.php

wxpay.nativepay.php

解壓縮到根目錄 tellingtent/開啟

wxpay.jsapipay.php

wxpay.micropay.php

wxpay.nativepay.php

將其中涉及呼叫

../lib/......路徑的改成

tellingtent/即是存放支付檔案的根目錄

開啟jsapi.php

將其中獲取openid的

$tools->getopenid();

換成已獲取的openid,這裡是

oskobjx_vtka67vgojjh4dg81trk

在這裡暫時不借用官方的獲取openid方法

即可進行支付

在設定好的**頁面中根據支付成功的out_trade_no單號修改資料庫中對應訂單的付款狀態為支付成功

支付成功後**頁面內容

php非以傳統

例<?php

//$poststr獲取到的是格式化字串內容

$poststr = file_get_contents('php://input');

?>例

8000

需要手動擷取獲取其中想要資訊值

如想要out_trade_no與transaction_id的值

例<?php

$poststr = file_get_contents('php://input');

$trade_noarr = explode ( "out_trade_no>$poststr

);$trade_noarr = explode ( "]]>$trade_noarr [1] );

$out_trade_no = $trade_noarr [0];

$arr = explode ( "transaction_id>$poststr

);$arr = explode ( "]]>$arr [1] );

$transaction_id = $arr [0];

//即可根據返回的訂單號修改資料庫中對應訂單資訊

設定的支付路徑是根目錄 tellingtent/不變

可以把之前的

jsapi.php

log.php

wxpay.jsapipay.php

wxpay.micropay.php

wxpay.nativepay.php

lib資料夾

單獨放到某個目錄下面

例如這裡放到根目錄下的

tellingtent/testpay

資料夾裡

把支付樣例jsapi.php檔案中的html部分**提取出來單獨存放在根目錄下的某個檔案內,這裡是

tellingtent/testpay.php

**內容

該筆訂單支付金額為style="color: #f00; font-size: 50px">1分

style="width: 210px; height: 50px; border-radius: 15px; background-color: #fe6714; border: 0px #fe6714 solid; cursor: pointer; color: white; font-size: 16px;"type="button" onclick="callpay()">立即支付

原頁面直接通過php獲取的jsapiparameters,改為通過ajax獲取

這樣tellingtent/testpay資料夾內的原檔案jsapi.php裡只剩下之前的php**

<?php

ini_set('date.timezone','asia/shanghai');

//error_reporting(e_all);

require_once "lib/wxpay.api.php";

require_once "wxpay.jsapipay.php";

require_once 'log.php';

//初始化日誌

$loghandler= new clogfilehandler("../logs/".date('y-m-d').'.log');

$log = log::init($loghandler, 15);

//列印輸出陣列資訊

function printf_info($data)}

//①、獲取使用者openid

$tools = new

jsapipay();

$openid = 'oskobjx_vtka67vgojjh4dg81trk';//

$tools->getopenid();

//②、統一下單

$input = new

wxpayunifiedorder();

$input->setbody("test");

$input->setattach("test");

$input->setout_trade_no(wxpayconfig::mchid.date("ymdhis"));

$input->settotal_fee("1");

$input->settime_start(date("ymdhis"));

$input->settime_expire(date("ymdhis", time() + 600));

$input->setgoods_tag("test");

$input->setnotify_url("");

$input->settrade_type("jsapi");

$input->setopenid($openid

);$order = wxpayapi::unifiedorder($input

);//

echo '統一下單支付單資訊

';printf_info($order

);$jsapiparameters = $tools->getjsapiparameters($order

);echo

$jsapiparameters;exit;//

獲取共享收貨位址js函式引數

//$editaddress = $tools->geteditaddressparameters();

//③、在支援成功**通知中處理成功之後的事宜,見 notify.php/**

* 注意:

* 1、當你的**位址不可訪問的時候,**通知會失敗,可以通過查詢訂單來確認支付是否成功

* 參考 */

也可以進行支付

只要支付呼叫js的檔案在支付授權指定目錄中即可

微信支付 微信JSAPI支付

pay.php baby extend wx pay.php namespace wx class pay 通過redirecturi獲取授權資訊 return mixed public function getauthinfo 通過code換取網頁授權資訊 res this curlgetreq ...

微信支付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,...