PHP微信支付实例解析__第1页
PHP微信支付实例解析__第2页
PHP微信支付实例解析__第3页
PHP微信支付实例解析__第4页
PHP微信支付实例解析__第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP微信支付实例解析_ 本文为大家分享了PHP微信支付实例,包括PHP微信支付源码,PHP微信退款源码,php微信支付接口,供大家参考,具体内容如下 1.JSapi支付demo(在微信客户端中点击) ?php /* * JS_API支付demo * = * 在微信扫瞄器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。 * 胜利调起支付需要三个步骤: * 步骤1:网页授权猎取用户openid * 步骤2:用法统一支付接口,猎取prepay_id * 步骤3:用法jsapi调起支付 */ include_once(./WxPayPubHelper/WxPayPubHelper

2、.php); /用法jsapi接口 $jsApi = new JsApi_pub(); /=步骤1:网页授权猎取用户openid= /通过code获得openid if (!isset($_GETcode) /触发微信返回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:用法统一支付接口,猎取prepay_id= /用法统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); /设置统一支付接口参数 /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /spbill_create_ip已填,商户无需重复填写 /sign已填,商户无需重复填写 $unifiedOrder-setParameter(openid,$openid);/商品描述 $unifiedOrder-setParameter(body,贡献一分钱);/商品描述

4、 /自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = WxPayConf_pub:APPID.$timeStamp; $unifiedOrder-setParameter(out_trade_no,$out_trade_no);/商户订单号 $unifiedOrder-setParameter(total_fee,1);/总金额 $unifiedOrder-setParameter(notify_url,WxPayConf_pub:NOTIFY_URL);/通知地址 $unifiedOrder-setParameter(trade_type,

5、JSAPI);/交易类型 /非必填参数,商户可依据实际状况选填 /$unifiedOrder-setParameter(sub_mch_id,XXXX);/子商户号 /$unifiedOrder-setParameter(device_info,XXXX);/设备号 /$unifiedOrder-setParameter(attach,XXXX);/附加数据 /$unifiedOrder-setParameter(time_start,XXXX);/交易起始时间 /$unifiedOrder-setParameter(time_expire,XXXX);/交易结束时间 /$unifiedOrd

6、er-setParameter(goods_tag,XXXX);/商品标记 /$unifiedOrder-setParameter(openid,XXXX);/用户标识 /$unifiedOrder-setParameter(product_id,XXXX);/商品ID $prepay_id = $unifiedOrder-getPrepayId(); /=步骤3:用法jsapi调起支付= $jsApi-setPrepayId($prepay_id); $jsApiParameters = $jsApi-getParameters(); /echo $jsApiParameters; ? 2.

7、native支付模式一demo(用微信扫的静态链接二维码) ?php /* * Native(原生)支付模式一demo * = * 模式一:商户按固定格式生成链接二维码,用户扫码后调微信 * 会将productid和用户openid发送到商户设置的链接上,商户收到 * 恳求生成订单,调用统一支付接口下单提交到微信,微信会返回 * 给商户prepayid。 * 本例程对应的二维码由native_call_qrcode.php生成; * 本例程对应的响应服务为native_call.php; * 需要两者配合用法。 */ include_once(./WxPayPubHelper/WxPayPub

8、Helper.php); /设置静态链接 $nativeLink = new NativeLink_pub(); /设置静态链接参数 /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /time_stamp已填,商户无需重复填写 /sign已填,商户无需重复填写 $product_id = WxPayConf_pub:APPID.static;/自定义商品id $nativeLink-setParameter(product_id,$product_id);/商品id /猎取链接 $product_url = $

9、nativeLink-getUrl(); /用法短链接转换接口 $shortUrl = new ShortUrl_pub(); /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /sign已填,商户无需重复填写 $shortUrl-setParameter(long_url,$product_url);/URL链接 /猎取短链接 $codeUrl = $shortUrl-getShortUrl(); ? 3.native支付模式二demo(用微信扫的动态链接二维码) ?php /* * Native(原生)支付-

10、模式二-demo * = * 商户生成订单,先调用统一支付接口猎取到code_url, * 此URL挺直生成二维码,用户扫码后调起支付。 * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /用法统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); /设置统一支付接口参数 /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /spbill_create_ip已填,商户无需重复填写 /sign已填,商户无需重复填写 $

11、unifiedOrder-setParameter(body,贡献一分钱);/商品描述 /自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = WxPayConf_pub:APPID.$timeStamp; $unifiedOrder-setParameter(out_trade_no,$out_trade_no);/商户订单号 $unifiedOrder-setParameter(total_fee,1);/总金额 $unifiedOrder-setParameter(notify_url,WxPayConf_pub:NOTIFY_URL);/

12、通知地址 $unifiedOrder-setParameter(trade_type,NATIVE);/交易类型 /非必填参数,商户可依据实际状况选填 /$unifiedOrder-setParameter(sub_mch_id,XXXX);/子商户号 /$unifiedOrder-setParameter(device_info,XXXX);/设备号 /$unifiedOrder-setParameter(attach,XXXX);/附加数据 /$unifiedOrder-setParameter(time_start,XXXX);/交易起始时间 /$unifiedOrder-setPara

13、meter(time_expire,XXXX);/交易结束时间 /$unifiedOrder-setParameter(goods_tag,XXXX);/商品标记 /$unifiedOrder-setParameter(openid,XXXX);/用户标识 /$unifiedOrder-setParameter(product_id,XXXX);/商品ID /猎取统一支付接口结果 $unifiedOrderResult = $unifiedOrder-getResult(); /商户依据实际状况设置相应的处理流程 if ($unifiedOrderResultreturn_code = FAI

14、L) /商户自行增加处理流程 echo 通信出错:.$unifiedOrderResultreturn_msg.br; elseif($unifiedOrderResultresult_code = FAIL) /商户自行增加处理流程 echo 错误代码:.$unifiedOrderResulterr_code.br; echo 错误代码描述:.$unifiedOrderResulterr_code_des.br; elseif($unifiedOrderResultcode_url != NULL) /从统一支付接口猎取到code_url $code_url = $unifiedOrderR

15、esultcode_url; /商户自行增加处理流程 /. ? 4.支付查询接口demo ?php /* * 订单查询-demo * = * 该接口供应全部微信支付订单的查询。 * 当支付通知处理特别或丢失的状况,商户可以通过该接口查询订单支付状态。 * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /退款的订单号 if (!isset($_POSTout_trade_no) $out_trade_no = ; else $out_trade_no = $_POSTout_trade_no; /用法订单查询接口 $orderQuer

16、y = new OrderQuery_pub(); /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /sign已填,商户无需重复填写 $orderQuery-setParameter(out_trade_no,$out_trade_no);/商户订单号 /非必填参数,商户可依据实际状况选填 /$orderQuery-setParameter(sub_mch_id,XXXX);/子商户号 /$orderQuery-setParameter(transaction_id,XXXX);/微信订单号 /猎取订单查询结果

17、 $orderQueryResult = $orderQuery-getResult(); /商户依据实际状况设置相应的处理流程,此处仅作举例 if ($orderQueryResultreturn_code = FAIL) echo 通信出错:.$orderQueryResultreturn_msg.br; elseif($orderQueryResultresult_code = FAIL) echo 错误代码:.$orderQueryResulterr_code.br; echo 错误代码描述:.$orderQueryResulterr_code_des.br; else echo 交易

18、状态:.$orderQueryResulttrade_state.br; echo 设备号:.$orderQueryResultdevice_info.br; echo 用户标识:.$orderQueryResultopenid.br; echo 是否关注公众账号:.$orderQueryResultis_subscribe.br; echo 交易类型:.$orderQueryResulttrade_type.br; echo 付款银行:.$orderQueryResultbank_type.br; echo 总金额:.$orderQueryResulttotal_fee.br; echo 现

19、金券金额:.$orderQueryResultcoupon_fee.br; echo 货币种类:.$orderQueryResultfee_type.br; echo 微信支付订单号:.$orderQueryResulttransaction_id.br; echo 商户订单号:.$orderQueryResultout_trade_no.br; echo 商家数据包:.$orderQueryResultattach.br; echo 支付完成时间:.$orderQueryResulttime_end.br; /商户自行增加处理流程 /. ? 5.对账单接口demo ?php /* * 对账单

20、接口demo * = * 商户可以通过该接口下载历史交易清单。 */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /对账单日期 if (!isset($_POSTbill_date) $bill_date = 20210814; else $bill_date = $_POSTbill_date; /用法对账单接口 $downloadBill = new DownloadBill_pub(); /设置对账单接口参数 /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需

21、重复填写 /sign已填,商户无需重复填写 $downloadBill-setParameter(bill_date,$bill_date);/对账单日期 $downloadBill-setParameter(bill_type,ALL);/账单类型 /非必填参数,商户可依据实际状况选填 /$downloadBill-setParameter(device_info,XXXX);/设备号 /对账单接口结果 $downloadBillResult = $downloadBill-getResult(); echo $downloadBillResultreturn_code; if ($down

22、loadBillResultreturn_code = FAIL) echo 通信出错:.$downloadBillResultreturn_msg; else print_r(pre); echo 【对账单详情】./br; print_r($downloadBill-response); print_r(/pre); ? 6.退款接口demo ?php /* * 退款申请接口-demo * = * 留意:同一笔单的部分退款需要设置相同的订单号和不同的 * out_refund_no。一笔退款失败后重新提交,要采纳原来的 * out_refund_no。总退款金额不能超过用户实际支付金额(现

23、* 金券金额不能退款)。 */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /输入需退款的订单号 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; /商户退款单号,商户自定义,此处仅作举例 $out_refund_no = $out_trade_no.$tim

24、e_stamp; /总金额需与订单号out_trade_no对应,demo中的全部订单的总金额为1分 $total_fee = 1; /用法退款接口 $refund = new Refund_pub(); /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /sign已填,商户无需重复填写 $refund-setParameter(out_trade_no,$out_trade_no);/商户订单号 $refund-setParameter(out_refund_no,$out_refund_no);/商户退款单号

25、 $refund-setParameter(total_fee,$total_fee);/总金额 $refund-setParameter(refund_fee,$refund_fee);/退款金额 $refund-setParameter(op_user_id,WxPayConf_pub:MCHID);/操作员 /非必填参数,商户可依据实际状况选填 /$refund-setParameter(sub_mch_id,XXXX);/子商户号 /$refund-setParameter(device_info,XXXX);/设备号 /$refund-setParameter(transaction

26、_id,XXXX);/微信订单号 /调用结果 $refundResult = $refund-getResult(); /商户依据实际状况设置相应的处理流程,此处仅作举例 if ($refundResultreturn_code = FAIL) echo 通信出错:.$refundResultreturn_msg.br; else echo 业务结果:.$refundResultresult_code.br; echo 错误代码:.$refundResulterr_code.br; echo 错误代码描述:.$refundResulterr_code_des.br; echo 公众账号ID:.

27、$refundResultappid.br; echo 商户号:.$refundResultmch_id.br; echo 子商户号:.$refundResultsub_mch_id.br; echo 设备号:.$refundResultdevice_info.br; echo 签名:.$refundResultsign.br; echo 微信订单号:.$refundResulttransaction_id.br; echo 商户订单号:.$refundResultout_trade_no.br; echo 商户退款单号:.$refundResultout_refund_no.br; echo

28、 微信退款单号:.$refundResultrefund_idrefund_id.br; echo 退款渠道:.$refundResultrefund_channel.br; echo 退款金额:.$refundResultrefund_fee.br; echo 现金券退款金额:.$refundResultcoupon_refund_fee.br; ? 7.退款查询接口demo ?php /* * 退款申请接口-demo * = * * */ include_once(./WxPayPubHelper/WxPayPubHelper.php); /要查询的订单号 if (!isset($_POS

29、Tout_trade_no) $out_trade_no = ; else $out_trade_no = $_POSTout_trade_no; /用法退款查询接口 $refundQuery = new RefundQuery_pub(); /设置必填参数 /appid已填,商户无需重复填写 /mch_id已填,商户无需重复填写 /noncestr已填,商户无需重复填写 /sign已填,商户无需重复填写 $refundQuery-setParameter(out_trade_no,$out_trade_no);/商户订单号 / $refundQuery-setParameter(out_refund_no,XXXX);/商户退款单号 / $refundQuery-setParameter(refund_id,XXXX);/微信退款单号 / $refundQuery-setParameter(transaction_id,XXXX);/微信退款单号 /非必填参数,商户可依据实际状况选填 /$refundQuery-setParameter(sub_mch_id,XXXX);/子商户号 /$refundQuery-setParameter(device_info,XXXX);/设备号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论