下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PHP微信支付實(shí)例解析_ 本文為大家分享了PHP微信支付實(shí)例,包括PHP微信支付源碼,PHP微信退款源碼,php微信支付接口,供大家參考,具體內(nèi)容如下 1.JSapi支付demo(在微信客戶端中點(diǎn)擊) ?php /* * JS_API支付demo * = * 在微信掃瞄器里面打開(kāi)H5網(wǎng)頁(yè)中執(zhí)行JS調(diào)起支付。接口輸入輸出數(shù)據(jù)格式為JSON。 * 勝利調(diào)起支付需要三個(gè)步驟: * 步驟1:網(wǎng)頁(yè)授權(quán)獵取用戶openid * 步驟2:用法統(tǒng)一支付接口,獵取prepay_id * 步驟3:用法jsapi調(diào)起支付 */ include_once(./WxPayPubHelper/WxPayPubHelper
2、.php); /用法jsapi接口 $jsApi = new JsApi_pub(); /=步驟1:網(wǎng)頁(yè)授權(quán)獵取用戶openid= /通過(guò)code獲得openid if (!isset($_GETcode) /觸發(fā)微信返回code碼 $url = $jsApi-createOauthUrlForCode(WxPayConf_pub:JS_API_CALL_URL); Header(Location: $url); else /獵取code碼,以獵取openid $code = $_GETcode; $jsApi-setCode($code); $openid = $jsApi-getOpenI
3、d(); /=步驟2:用法統(tǒng)一支付接口,獵取prepay_id= /用法統(tǒng)一支付接口 $unifiedOrder = new UnifiedOrder_pub(); /設(shè)置統(tǒng)一支付接口參數(shù) /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /spbill_create_ip已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $unifiedOrder-setParameter(openid,$openid);/商品描述 $unifiedOrder-setParameter(body,貢獻(xiàn)一分錢);/商品描述
4、 /自定義訂單號(hào),此處僅作舉例 $timeStamp = time(); $out_trade_no = WxPayConf_pub:APPID.$timeStamp; $unifiedOrder-setParameter(out_trade_no,$out_trade_no);/商戶訂單號(hào) $unifiedOrder-setParameter(total_fee,1);/總金額 $unifiedOrder-setParameter(notify_url,WxPayConf_pub:NOTIFY_URL);/通知地址 $unifiedOrder-setParameter(trade_type,
5、JSAPI);/交易類型 /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$unifiedOrder-setParameter(sub_mch_id,XXXX);/子商戶號(hào) /$unifiedOrder-setParameter(device_info,XXXX);/設(shè)備號(hào) /$unifiedOrder-setParameter(attach,XXXX);/附加數(shù)據(jù) /$unifiedOrder-setParameter(time_start,XXXX);/交易起始時(shí)間 /$unifiedOrder-setParameter(time_expire,XXXX);/交易結(jié)束時(shí)間 /$unifiedOrd
6、er-setParameter(goods_tag,XXXX);/商品標(biāo)記 /$unifiedOrder-setParameter(openid,XXXX);/用戶標(biāo)識(shí) /$unifiedOrder-setParameter(product_id,XXXX);/商品ID $prepay_id = $unifiedOrder-getPrepayId(); /=步驟3:用法jsapi調(diào)起支付= $jsApi-setPrepayId($prepay_id); $jsApiParameters = $jsApi-getParameters(); /echo $jsApiParameters; ? 2.
7、native支付模式一demo(用微信掃的靜態(tài)鏈接二維碼) ?php /* * Native(原生)支付模式一demo * = * 模式一:商戶按固定格式生成鏈接二維碼,用戶掃碼后調(diào)微信 * 會(huì)將productid和用戶openid發(fā)送到商戶設(shè)置的鏈接上,商戶收到 * 懇求生成訂單,調(diào)用統(tǒng)一支付接口下單提交到微信,微信會(huì)返回 * 給商戶prepayid。 * 本例程對(duì)應(yīng)的二維碼由native_call_qrcode.php生成; * 本例程對(duì)應(yīng)的響應(yīng)服務(wù)為native_call.php; * 需要兩者配合用法。 */ include_once(./WxPayPubHelper/WxPayPub
8、Helper.php); /設(shè)置靜態(tài)鏈接 $nativeLink = new NativeLink_pub(); /設(shè)置靜態(tài)鏈接參數(shù) /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /time_stamp已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $product_id = WxPayConf_pub:APPID.static;/自定義商品id $nativeLink-setParameter(product_id,$product_id);/商品id /獵取鏈接 $product_url = $
9、nativeLink-getUrl(); /用法短鏈接轉(zhuǎn)換接口 $shortUrl = new ShortUrl_pub(); /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $shortUrl-setParameter(long_url,$product_url);/URL鏈接 /獵取短鏈接 $codeUrl = $shortUrl-getShortUrl(); ? 3.native支付模式二demo(用微信掃的動(dòng)態(tài)鏈接二維碼) ?php /* * Native(原生)支付-
10、模式二-demo * = * 商戶生成訂單,先調(diào)用統(tǒng)一支付接口獵取到code_url, * 此URL挺直生成二維碼,用戶掃碼后調(diào)起支付。 * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /用法統(tǒng)一支付接口 $unifiedOrder = new UnifiedOrder_pub(); /設(shè)置統(tǒng)一支付接口參數(shù) /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /spbill_create_ip已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $
11、unifiedOrder-setParameter(body,貢獻(xiàn)一分錢);/商品描述 /自定義訂單號(hào),此處僅作舉例 $timeStamp = time(); $out_trade_no = WxPayConf_pub:APPID.$timeStamp; $unifiedOrder-setParameter(out_trade_no,$out_trade_no);/商戶訂單號(hào) $unifiedOrder-setParameter(total_fee,1);/總金額 $unifiedOrder-setParameter(notify_url,WxPayConf_pub:NOTIFY_URL);/
12、通知地址 $unifiedOrder-setParameter(trade_type,NATIVE);/交易類型 /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$unifiedOrder-setParameter(sub_mch_id,XXXX);/子商戶號(hào) /$unifiedOrder-setParameter(device_info,XXXX);/設(shè)備號(hào) /$unifiedOrder-setParameter(attach,XXXX);/附加數(shù)據(jù) /$unifiedOrder-setParameter(time_start,XXXX);/交易起始時(shí)間 /$unifiedOrder-setPara
13、meter(time_expire,XXXX);/交易結(jié)束時(shí)間 /$unifiedOrder-setParameter(goods_tag,XXXX);/商品標(biāo)記 /$unifiedOrder-setParameter(openid,XXXX);/用戶標(biāo)識(shí) /$unifiedOrder-setParameter(product_id,XXXX);/商品ID /獵取統(tǒng)一支付接口結(jié)果 $unifiedOrderResult = $unifiedOrder-getResult(); /商戶依據(jù)實(shí)際狀況設(shè)置相應(yīng)的處理流程 if ($unifiedOrderResultreturn_code = FAI
14、L) /商戶自行增加處理流程 echo 通信出錯(cuò):.$unifiedOrderResultreturn_msg.br; elseif($unifiedOrderResultresult_code = FAIL) /商戶自行增加處理流程 echo 錯(cuò)誤代碼:.$unifiedOrderResulterr_code.br; echo 錯(cuò)誤代碼描述:.$unifiedOrderResulterr_code_des.br; elseif($unifiedOrderResultcode_url != NULL) /從統(tǒng)一支付接口獵取到code_url $code_url = $unifiedOrderR
15、esultcode_url; /商戶自行增加處理流程 /. ? 4.支付查詢接口demo ?php /* * 訂單查詢-demo * = * 該接口供應(yīng)全部微信支付訂單的查詢。 * 當(dāng)支付通知處理特別或丟失的狀況,商戶可以通過(guò)該接口查詢訂單支付狀態(tài)。 * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /退款的訂單號(hào) if (!isset($_POSTout_trade_no) $out_trade_no = ; else $out_trade_no = $_POSTout_trade_no; /用法訂單查詢接口 $orderQuer
16、y = new OrderQuery_pub(); /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $orderQuery-setParameter(out_trade_no,$out_trade_no);/商戶訂單號(hào) /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$orderQuery-setParameter(sub_mch_id,XXXX);/子商戶號(hào) /$orderQuery-setParameter(transaction_id,XXXX);/微信訂單號(hào) /獵取訂單查詢結(jié)果
17、 $orderQueryResult = $orderQuery-getResult(); /商戶依據(jù)實(shí)際狀況設(shè)置相應(yīng)的處理流程,此處僅作舉例 if ($orderQueryResultreturn_code = FAIL) echo 通信出錯(cuò):.$orderQueryResultreturn_msg.br; elseif($orderQueryResultresult_code = FAIL) echo 錯(cuò)誤代碼:.$orderQueryResulterr_code.br; echo 錯(cuò)誤代碼描述:.$orderQueryResulterr_code_des.br; else echo 交易
18、狀態(tài):.$orderQueryResulttrade_state.br; echo 設(shè)備號(hào):.$orderQueryResultdevice_info.br; echo 用戶標(biāo)識(shí):.$orderQueryResultopenid.br; echo 是否關(guān)注公眾賬號(hào):.$orderQueryResultis_subscribe.br; echo 交易類型:.$orderQueryResulttrade_type.br; echo 付款銀行:.$orderQueryResultbank_type.br; echo 總金額:.$orderQueryResulttotal_fee.br; echo 現(xiàn)
19、金券金額:.$orderQueryResultcoupon_fee.br; echo 貨幣種類:.$orderQueryResultfee_type.br; echo 微信支付訂單號(hào):.$orderQueryResulttransaction_id.br; echo 商戶訂單號(hào):.$orderQueryResultout_trade_no.br; echo 商家數(shù)據(jù)包:.$orderQueryResultattach.br; echo 支付完成時(shí)間:.$orderQueryResulttime_end.br; /商戶自行增加處理流程 /. ? 5.對(duì)賬單接口demo ?php /* * 對(duì)賬單
20、接口demo * = * 商戶可以通過(guò)該接口下載歷史交易清單。 */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /對(duì)賬單日期 if (!isset($_POSTbill_date) $bill_date = 20210814; else $bill_date = $_POSTbill_date; /用法對(duì)賬單接口 $downloadBill = new DownloadBill_pub(); /設(shè)置對(duì)賬單接口參數(shù) /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需
21、重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $downloadBill-setParameter(bill_date,$bill_date);/對(duì)賬單日期 $downloadBill-setParameter(bill_type,ALL);/賬單類型 /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$downloadBill-setParameter(device_info,XXXX);/設(shè)備號(hào) /對(duì)賬單接口結(jié)果 $downloadBillResult = $downloadBill-getResult(); echo $downloadBillResultreturn_code; if ($down
22、loadBillResultreturn_code = FAIL) echo 通信出錯(cuò):.$downloadBillResultreturn_msg; else print_r(pre); echo 【對(duì)賬單詳情】./br; print_r($downloadBill-response); print_r(/pre); ? 6.退款接口demo ?php /* * 退款申請(qǐng)接口-demo * = * 留意:同一筆單的部分退款需要設(shè)置相同的訂單號(hào)和不同的 * out_refund_no。一筆退款失敗后重新提交,要采納原來(lái)的 * out_refund_no。總退款金額不能超過(guò)用戶實(shí)際支付金額(現(xiàn)
23、* 金券金額不能退款)。 */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /輸入需退款的訂單號(hào) if (!isset($_POSTout_trade_no) | !isset($_POSTrefund_fee) $out_trade_no = ; $refund_fee = 1; else $out_trade_no = $_POSTout_trade_no; $refund_fee = $_POSTrefund_fee; /商戶退款單號(hào),商戶自定義,此處僅作舉例 $out_refund_no = $out_trade_no.$tim
24、e_stamp; /總金額需與訂單號(hào)out_trade_no對(duì)應(yīng),demo中的全部訂單的總金額為1分 $total_fee = 1; /用法退款接口 $refund = new Refund_pub(); /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $refund-setParameter(out_trade_no,$out_trade_no);/商戶訂單號(hào) $refund-setParameter(out_refund_no,$out_refund_no);/商戶退款單號(hào)
25、 $refund-setParameter(total_fee,$total_fee);/總金額 $refund-setParameter(refund_fee,$refund_fee);/退款金額 $refund-setParameter(op_user_id,WxPayConf_pub:MCHID);/操作員 /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$refund-setParameter(sub_mch_id,XXXX);/子商戶號(hào) /$refund-setParameter(device_info,XXXX);/設(shè)備號(hào) /$refund-setParameter(transaction
26、_id,XXXX);/微信訂單號(hào) /調(diào)用結(jié)果 $refundResult = $refund-getResult(); /商戶依據(jù)實(shí)際狀況設(shè)置相應(yīng)的處理流程,此處僅作舉例 if ($refundResultreturn_code = FAIL) echo 通信出錯(cuò):.$refundResultreturn_msg.br; else echo 業(yè)務(wù)結(jié)果:.$refundResultresult_code.br; echo 錯(cuò)誤代碼:.$refundResulterr_code.br; echo 錯(cuò)誤代碼描述:.$refundResulterr_code_des.br; echo 公眾賬號(hào)ID:.
27、$refundResultappid.br; echo 商戶號(hào):.$refundResultmch_id.br; echo 子商戶號(hào):.$refundResultsub_mch_id.br; echo 設(shè)備號(hào):.$refundResultdevice_info.br; echo 簽名:.$refundResultsign.br; echo 微信訂單號(hào):.$refundResulttransaction_id.br; echo 商戶訂單號(hào):.$refundResultout_trade_no.br; echo 商戶退款單號(hào):.$refundResultout_refund_no.br; echo
28、 微信退款單號(hào):.$refundResultrefund_idrefund_id.br; echo 退款渠道:.$refundResultrefund_channel.br; echo 退款金額:.$refundResultrefund_fee.br; echo 現(xiàn)金券退款金額:.$refundResultcoupon_refund_fee.br; ? 7.退款查詢接口demo ?php /* * 退款申請(qǐng)接口-demo * = * * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /要查詢的訂單號(hào) if (!isset($_POS
29、Tout_trade_no) $out_trade_no = ; else $out_trade_no = $_POSTout_trade_no; /用法退款查詢接口 $refundQuery = new RefundQuery_pub(); /設(shè)置必填參數(shù) /appid已填,商戶無(wú)需重復(fù)填寫 /mch_id已填,商戶無(wú)需重復(fù)填寫 /noncestr已填,商戶無(wú)需重復(fù)填寫 /sign已填,商戶無(wú)需重復(fù)填寫 $refundQuery-setParameter(out_trade_no,$out_trade_no);/商戶訂單號(hào) / $refundQuery-setParameter(out_refund_no,XXXX);/商戶退款單號(hào) / $refundQuery-setParameter(refund_id,XXXX);/微信退款單號(hào) / $refundQuery-setParameter(transaction_id,XXXX);/微信退款單號(hào) /非必填參數(shù),商戶可依據(jù)實(shí)際狀況選填 /$refundQuery-setParameter(sub_mch_id,XXXX);/子商戶號(hào) /$refundQuery-setParameter(device_info,XXXX);/設(shè)備號(hào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)教學(xué)工作計(jì)劃模板錦集四篇
- 耐材項(xiàng)目建議書(立項(xiàng)報(bào)告)
- 勞動(dòng)小能手小班教案
- 幼兒園中班教案《路線圖》及教學(xué)反思
- 2021八年級(jí)歡慶中秋節(jié)滿分作文五篇
- 大學(xué)生曠課檢討書集合15篇
- 高中軍訓(xùn)心得15篇
- 初中體育教師學(xué)期教學(xué)工作計(jì)劃范文
- 人才公寓(原公租房)項(xiàng)目第三方檢測(cè)和監(jiān)測(cè)服務(wù)招標(biāo)文件
- 2025年食品級(jí)纖維素醚項(xiàng)目發(fā)展計(jì)劃
- 船舶調(diào)度年終述職報(bào)告
- 醫(yī)??乒ぷ魇雎殘?bào)告
- 玻璃的浮法成型工藝
- 山東省濟(jì)南市2023-2024學(xué)年高三上學(xué)期期末學(xué)習(xí)質(zhì)量檢測(cè)物理試題(解析版)
- 國(guó)家開(kāi)放大學(xué)電大本科《古代小說(shuō)戲曲專題》2025期末試題及答案(試卷號(hào):1340)
- 粵教粵科版三年級(jí)科學(xué)上冊(cè)全冊(cè)單元期中期末測(cè)試卷 含答案
- 遼寧省大連市甘井子區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末英語(yǔ)試卷
- (完整版)年產(chǎn)30萬(wàn)噸甲醇工藝設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 外研版五年級(jí)上冊(cè)(三起)連詞成句專項(xiàng)訓(xùn)練
- 養(yǎng)老機(jī)構(gòu)風(fēng)險(xiǎn)管控清單
- 辦公室消防管理制度
評(píng)論
0/150
提交評(píng)論