摘要:項目版本微信的支付邏輯與支付寶的支付有一些差別。調(diào)用微信支付不同接口需要的參數(shù)會有差別。調(diào)用客戶端的方式查看微信文檔掃碼支付返回了一個地址。可直接放入微信的完成調(diào)用。
payment 項目2.0版本
微信的支付邏輯與支付寶的支付有一些差別。為了讓客戶端忽略這些差別,統(tǒng)一調(diào)用。本sdk做了對應(yīng)處理。
# SDK調(diào)用
微信支付不同接口需要的參數(shù)會有差別。請大家在使用接口時,仔細查看文檔。
use PaymentChargeContext; use PaymentConfig; use PaymentCommonPayException; // 微信支付,必須設(shè)置時區(qū),否則發(fā)生錯誤 date_default_timezone_set("Asia/Shanghai"); // 生成訂單號 便于測試 function createPayid() { return date("Ymdhis", time()).substr(floor(microtime()*1000),0,1).rand(0,9); } // 訂單信息 $payData = [ "order_no" => createPayid(), "amount" => "0.01",// 單位為元 ,最小為0.01 "client_ip" => "127.0.0.1", "subject" => "測試支付", "body" => "支付接口測試", "extra_param" => "", ]; // 微信掃碼支付,需要設(shè)置的參數(shù) $payData["product_id"] = "123456"; // 微信公眾號支付,需要的參數(shù) $payData["openid"] = "otijfvr2oMz3tXnaQdKKbQeeBmhM";// 需要通過微信提供的api獲取該openid /** * 包含客戶的配置文件 * 本次 2.0 版本,主要的改變是將配置文件獨立出來,便于客戶多個賬號的情況 * 已經(jīng)使用不同方式讀取配置文件,如:db file cache等 */ $wxconfig = [ "app_id" => "wxxxx", // 公眾賬號ID "mch_id" => "xxxx",// 商戶id "md5_key" => "xxxxxx",// md5 秘鑰 "notify_url" => "http://test.helei.com/pay-notify.html", "time_expire" => "14", // 涉及資金流動時,需要提供該文件 "cert_path" => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_cert.pem", "key_path" => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_key.pem", ]; /** * 實例化支付環(huán)境類,進行支付創(chuàng)建 */ $charge = new ChargeContext(); try { // 微信 掃碼支付 $type = Config::WX_CHANNEL_QR; // 微信 APP支付 //$type = Config::WX_CHANNEL_APP; // 微信 公眾號支付 //$type = Config::WX_CHANNEL_PUB; $charge->initCharge($type, $wxconfig); $ret = $charge->charge($payData); } catch (PayException $e) { echo $e->errorMessage();exit; } if ($type === Config::WX_CHANNEL_QR) { $url = urlencode($ret); echo ""; } elseif ($type === Config::WX_CHANNEL_PUB) { $json = $ret; var_dump($json);exit; } elseif (stripos($type, "wx") !== false) { var_dump($ret); } ?>
這里掃碼支付與公眾號支付分別需要提供不同的參數(shù)。請一定注意進行區(qū)分。否則調(diào)用相應(yīng)端口會拋出異常。
配置文件參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
app_id | 公眾賬號ID/應(yīng)用id | 微信分配的公眾賬號ID | 是 |
mch_id | 商戶號 | 微信支付分配的商戶號 | 是 |
md5_key | 加密的key | 在商戶中心設(shè)置 | 是 |
notify_url | 通知地址 | 接收微信支付異步通知回調(diào)地址,通知url必須為直接可訪問的url,不能攜帶參數(shù)。 | 是 |
time_expire | 交易過期時間 | 單位為分鐘,過期后無法再次支付 | 是 |
cert_path | 密鑰文件 | 可在微信商戶后臺中下載 | 否,退款需要 |
key_path | 密鑰文件 | 可在商戶中心下載 | 否,退款需要 |
這里需要注意的是,app_id,由于微信的三個支付接口,需要對應(yīng)兩個不同的app_id。因此再開發(fā)中一定要注意。
請求參數(shù)參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
order_no | 訂單號 | 平臺根據(jù)規(guī)則生成的訂單號,最長64位,要在商戶數(shù)據(jù)庫中唯一 | 必須 |
amount | 交易總金額 | 該筆訂單的資金總額,單位為RMB-Yuan。取值范圍為[0.01,100000000.00],精確到小數(shù)點后兩位。 | 必須 |
client_ip | 客戶端IP | 用戶在創(chuàng)建交易時,該用戶當(dāng)前所使用機器的IP。 | 必須 |
subject | 商品名稱 | 商品的標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。該參數(shù)最長為128個漢字。 | 必須 |
body | 商品描述 | 對一筆交易的具體描述信息。如果是多種商品,請將商品描述字符串累加傳給body。 | 必須 |
extra_param | 公用回傳參數(shù) | 如果用戶請求時傳遞了該參數(shù),則返回給商戶時會回傳該參數(shù)。 | 可選 |
product_id | 商品ID | 掃碼支付,此參數(shù)必傳。此id為二維碼中包含的商品ID,商戶自行定義。 | 可選 |
openid | 用戶標(biāo)識 | 公眾號支付,此參數(shù)必傳,用戶在商戶appid下的唯一標(biāo)識。 | 可選 |
三種支付方式返回值因為處理方式不同,微信方面返回了不同的類型。
app支付返回了需要調(diào)用的數(shù)組。調(diào)用客戶端的方式 查看微信文檔
掃碼支付返回了一個地址。可生成一個二維碼,完成支付。
公眾號支付,返回的是一個json數(shù)據(jù)。可直接放入微信的sdk完成jsapi調(diào)用。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21900.html
摘要:項目版本微信的退款操作,通過封裝與前面支付寶退款除了配置文件,基本一樣。微信僅能每次退款筆如果想要實現(xiàn)一次退訂多筆訂單,可在客戶端通過循環(huán)來處理。 payment 項目2.0版本 微信的退款操作,通過封裝與前面支付寶退款除了配置文件,基本一樣。 退款代碼如下: use PaymentRefundContext; use PaymentCommonPayException; use P...
摘要:本文是淺析微信支付系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。淺析微信支付前篇大綱微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。目前微信支付支持手機系統(tǒng)有蘋果安卓和。 本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。 上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。 淺析微信支...
摘要:支持的付款方式主打銀聯(lián)信用卡等,付款可以及時到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發(fā)自己的網(wǎng)站,想要接入一個第三方的支付平臺,但是處在創(chuàng)業(yè)初期,還沒能成立公司,所以沒有企業(yè)資質(zhì),想接入一款安全且性價比高的收款產(chǎn)品。以本人選擇困難癥再加點小糾結(jié)的個性,對現(xiàn)有的一些第三方支付接口做了一個對比,希望能給有相同需要的和正在尋求相關(guān)解決方案的朋友提供一...
摘要:支付寶支持網(wǎng)站支付,支付,支付和當(dāng)面付,但是要想接入網(wǎng)站,需要網(wǎng)站備案,并且還要有營業(yè)執(zhí)照。可是,這個途徑后來經(jīng)過證實,支付寶已經(jīng)停用。缺點也是相當(dāng)?shù)拿黠@只有支付寶可以用這種方式,因為微信是在內(nèi)部有一個公眾號形式的提示。 0.背景 前段時間準(zhǔn)備把自己的博客做成付費閱讀或者訂閱的形式,雖然沒想著要贏利多少錢,但是起碼養(yǎng)的起自己站點域名服務(wù)器費用即可。但是大家都懂,草根站長,又沒公司,想...
閱讀 2999·2020-01-08 12:17
閱讀 1994·2019-08-30 15:54
閱讀 1155·2019-08-30 15:52
閱讀 2038·2019-08-29 17:18
閱讀 1050·2019-08-29 15:34
閱讀 2464·2019-08-27 10:58
閱讀 1866·2019-08-26 12:24
閱讀 371·2019-08-23 18:23