这篇文章的PHP微信支付为例,微信支付包括PHP源码,PHP源代码PHP微信退还,微信支付接口,供您参考,具体内容如下。

1.jsapi支付演示(点击微信客户端)


< PHP

* js_api支付演示
* ====================================================
*在微信浏览器打开H5网页执行JS支付界面,输入和输出数据格式JSON。
*成功转移付款需要三步:
*步骤1:网页授权获取用户的OpenID
* step 2: use the unified payment interface to get prepay_id
*步骤3:用JSAPI调整支付
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

/ /用JSAPI接口
新jsapi_pub JSAPI美元=();

步骤1: / / =========授权用户访问OpenID ============
通过代码 / / OpenID
如果(!isset($ _get { 'code ' }))
{
微信返回代码 / /触发
url =美元美元JSAPI -> createoauthurlforcode(wxpayconf_pub::js_api_call_url);
标题(位置:$ );
}其他
{
让 / /码,OpenID
代码= { 'code美元美元_get};
JSAPI ->用SetCode美元($代码);
OpenID =美元美元JSAPI -> getopenid();
}

/ / =========步骤2:使用统一的支付接口,访问prepay_id ============
使用统一的支付接口
unifiedorder美元=新unifiedorder_pub();

设置统一支付接口参数
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
/ / spbill_create_ip已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
unifiedorder美元->设置参数(OpenID
unifiedorder美元->设置参数(身体
/自定义订单号,此处仅用于示例
时间戳=时间();
out_trade_no美元= wxpayconf_pub AppID:。时间戳;
unifiedorder美元->设置参数(out_trade_no
unifiedorder美元->设置参数(total_fee
unifiedorder美元->设置参数(notify_url
unifiedorder美元->设置参数(trade_type
所需参数,企业可根据实际情况任选。
/ / $ unifiedorder ->设置参数(sub_mch_id
/ / $ unifiedorder ->设置参数(device_info
/ / $ unifiedorder ->设置参数(连接
/ / $ unifiedorder ->设置参数(time_start
/ / $ unifiedorder ->设置参数(time_expire
/ / $ unifiedorder ->设置参数(goods_tag
/ / $ unifiedorder ->设置参数(OpenID
/ / $ unifiedorder ->设置参数(product_id

prepay_id美元=美元unifiedorder -> getprepayid();
/ / =========步骤3:使用============ JSAPI支付
JSAPI -> setprepayid美元(美元prepay_id);

jsapiparameters美元= $ JSAPI ->得到相机的参数();
/ /回声jsapiparameters美元;
>




2.native支付模式演示(静态链接的二维码用微信)


< PHP

*本地(本地)付款模式演示
* ====================================================
*模式1:商人在一个固定的格式生成一个链接的二维码,并在用户的清除,微信将调整代码。
*将ID和用户OpenID的商家设置的链接,这商人接受
*请求生成一个订单,拨打统一的支付接口提交给微信,微信将返回
*商人prepayid。
*此相应常规二维码生成的native_call_qrcode.php;
*这一常规响应服务native_call.php;
*两者都需要使用。
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

设置静态链接
nativelink美元=新nativelink_pub();

设置静态链接参数
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
/ / time_stamp已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
wxpayconf_pub AppID:。product_id美元=静态; / /自定义商品编号
nativelink美元->设置参数(product_id
获取链接
product_url美元=美元nativelink -> geturl();

使用短链路转换接口
URL缩短=新shorturl_pub(美元);
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
URL缩短美元->设置参数(long_url
获取较短的链接
codeurl =美元美元的URL缩短-> getshorturl();

>




3.native支付模式两演示(动态链接的二维码用微信扫)


< PHP

*本机(本地)付款模式二-演示
* ====================================================
*商家生成一个订单,并首先调用统一的支付接口到code_url,
*此URL直接生成二维码,然后在用户清除代码后更改付款。
*
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

使用统一的支付接口
unifiedorder美元=新unifiedorder_pub();

设置统一支付接口参数
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
/ / spbill_create_ip已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
unifiedorder美元->设置参数(身体
/自定义订单号,此处仅用于示例
时间戳=时间();
out_trade_no美元= wxpayconf_pub AppID:。时间戳;
unifiedorder美元->设置参数(out_trade_no
unifiedorder美元->设置参数(total_fee
unifiedorder美元->设置参数(notify_url
unifiedorder美元->设置参数(trade_type
所需参数,企业可根据实际情况任选。
/ / $ unifiedorder ->设置参数(sub_mch_id
/ / $ unifiedorder ->设置参数(device_info
/ / $ unifiedorder ->设置参数(连接
/ / $ unifiedorder ->设置参数(time_start
/ / $ unifiedorder ->设置参数(time_expire
/ / $ unifiedorder ->设置参数(goods_tag
/ / $ unifiedorder ->设置参数(OpenID
/ / $ unifiedorder ->设置参数(product_id

获取统一的支付接口结果
unifiedorderresult美元=美元unifiedorder -> getResult();

根据实际情况设置相应的业务流程
如果($ unifiedorderresult {return_code} =失败)
{
增加加工/业务
回声通讯错误。unifiedorderresult美元'return_msg'} {。;
}
($ unifiedorderresult {result_code} =失败)
{
增加加工/业务
回声错误代码:美元unifiedorderresult { 'err_code'}。;
回声错误代码的描述:unifiedorderresult美元{ 'err_code_des'}。;
}
($ unifiedorderresult {code_url}!= null)
{
/ /去code_url从统一的支付接口
code_url美元美元unifiedorderresult { =code_url};
增加加工/业务
/……
}

>




4。支付查询接口演示


< PHP

*订单查询-演示
* ====================================================
这个接口提供了对所有微信支付订单查询。
*当支付通知处理异常或丢失时,商家可以通过接口查询订单的支付状态。
*
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

退款订单号
如果(!isset($ _post {out_trade_no ))))
{
out_trade_no美元= ;
其他{ }
out_trade_no美元美元_post { =out_trade_no};

使用订单查询接口
orderquery美元=新orderquery_pub();
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
orderquery美元->设置参数(out_trade_no
所需参数,企业可根据实际情况任选。
/ / $ orderquery ->设置参数(sub_mch_id
/ / $ orderquery ->设置参数(transaction_id

为了获得查询结果
orderqueryresult美元=美元orderquery -> getResult();

根据实际情况,设置相应的进程,这里仅举例说明
如果($ orderqueryresult {return_code} =失败){
回声通讯错误。orderqueryresult美元'return_msg'} {。;
}
($ orderqueryresult {result_code} =失败){
回声错误代码:美元orderqueryresult { 'err_code'}。;
回声错误代码的描述:orderqueryresult美元{ 'err_code_des'}。;
}
别的{
回声交易状态:美元orderqueryresult { 'trade_state'}。;
回声设备号:orderqueryresult美元{ 'device_info'}。;
回声用户身份:美元orderqueryresult { 'openid'}。;
回声是否关注公众账号:美元orderqueryresult { 'is_subscribe'}。;
回声交易型。orderqueryresult美元'trade_type'} {。;
回声付款银行:orderqueryresult美元{ 'bank_type'}。;
回声金额。orderqueryresult美元'total_fee'} {。;
回声现金券金额:美元orderqueryresult { 'coupon_fee'}。;
回声型货币:美元orderqueryresult { 'fee_type'}。;
回声微信支付订单号:orderqueryresult美元{ 'transaction_id'}。;
回声商户订单号:orderqueryresult美元{ 'out_trade_no'}。;
回声业务包:美元orderqueryresult {附加}。;
回声支付完成时间:orderqueryresult美元{ 'time_end'}。;
}
}

增加加工/业务
/……

>




5。对账单界面演示


< PHP

*到票据界面演示
* ====================================================
*商人可以通过这个接口下载历史交易列表。
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

帐单日期
如果(!isset($ _post {bill_date ))){
bill_date美元=20140814;
}
别的{
bill_date美元美元_post { =bill_date};

票据/接口的使用
downloadbill美元=新downloadbill_pub();
一组账单接口参数
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
downloadbill美元->设置参数(bill_date
downloadbill美元->设置参数(bill_type
所需参数,企业可根据实际情况任选。
/ / $ downloadbill ->设置参数(device_info

账单/接口的结果
downloadbillresult美元=美元downloadbill -> getResult();
echo $ downloadbillresult { 'return_code};

如果($ downloadbillresult { } = =失败'return_code){
回声通讯错误。downloadbillresult美元'return_msg'} {;
其他{ }
print_r(' ');
{到账单的详细信息。
print_r($ downloadbill ->响应);
print_r(' ');
}
}

>




6。退款界面演示


< PHP

*退款申请界面-演示
* ====================================================
*注:相同的退款需要设置相同的订单号码和不同的。
* out_refund_no。退款将退还后退款。
* out_refund_no.the总金额退款不得超过由用户支付的实际金额。
*黄金券金额不可退还)。
* /

include_once(, / / wxpaypubhelper wxpaypubhelper .php);

输入需要退还订单号。
如果(!isset($ _post {out_trade_no})| |!isset($ _post {refund_fee}))
{
out_trade_no美元= ;
refund_fee美元=1;
其他{ }
out_trade_no美元美元_post { =out_trade_no};
refund_fee美元美元_post { =refund_fee};
商户退款号码,商业惯例,这里仅举例说明
out_refund_no美元=out_trade_no美元。time_stamp美元;
/ /总金额需要对应的订单号out_trade_no,所有订单的1分钟的演示总金额
total_fee美元=1;

使用/退款接口
退税=新refund_pub(美元);
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
美元的退款->设置参数(out_trade_no
美元的退款->设置参数(out_refund_no
美元的退款->设置参数(total_fee
美元的退款->设置参数(refund_fee
美元的退款->设置参数(op_user_id
所需参数,企业可根据实际情况任选。
/ /美元退款->设置参数(sub_mch_id
/ /美元退款->设置参数(device_info
/ /美元退款->设置参数(transaction_id

调用结果
refundresult美元=美元退款-> getResult();

根据实际情况,设置相应的进程,这里仅举例说明
如果($ refundresult {return_code} =失败){
回声通讯错误。refundresult美元'return_msg'} {。;
}
别的{
回声经营结果。refundresult美元'result_code'} {。;
回声错误代码:美元refundresult { 'err_code'}。;
回声错误代码的描述:refundresult美元{ 'err_code_des'}。;
回声公共账号:美元refundresult { 'appid'}。;
回声号商船:美元refundresult { 'mch_id'}。;
回声亚商人数:refundresult美元{ 'sub_mch_id'}。;
回声设备号:refundresult美元{ 'device_info'}。;
回声的签名:refundresult美元符号{ }。;
回声微信订单号:refundresult美元{ 'transaction_id'}。;
回声商户订单号:refundresult美元{ 'out_trade_no'}。;
回声商人退单号码:refundresult美元{ 'out_refund_no'}。;
回声微信退款单:美元refundresult { 'refund_idrefund_id'}。;
回声退道:refundresult美元{ 'refund_channel'}。;
回声退款金额:美元refundresult { 'refund_fee'}。;
回声现金券退款:美元refundresult { 'coupon_refund_fee'}。;
}
}

>




7。退款查询界面演示


< PHP

*退款申请界面-演示
* ====================================================
*
*
* /
include_once(, / / wxpaypubhelper wxpaypubhelper .php);

查询订单号。
如果(!isset($ _post {out_trade_no ))))
{
out_trade_no美元= ;
其他{ }
out_trade_no美元美元_post { =out_trade_no};

查询接口的使用/退款
refundquery美元=新refundquery_pub();
设置所需的参数
/ / AppID已满,业主不需要重复
/ / mch_id已满,业主不需要重复
/ / noncestr已满,业主不需要重复
已经填写了签名,企业主不需要重复它。
refundquery美元->设置参数(out_trade_no
/ / $ refundquery ->设置参数(out_refund_no
/ / $ refundquery ->设置参数(refund_id
/ / $ refundquery ->设置参数(transaction_id
所需参数,企业可根据实际情况任选。
/ / $ refundquery ->设置参数(sub_mch_id
/ / $ refundquery ->设置参数(device_info

查询接口返回的结果
refundqueryresult美元=美元refundquery -> getResult();

根据实际情况,设置相应的进程,这里仅举例说明
如果($ refundqueryresult {return_code} =失败){
回声通讯错误。refundqueryresult美元'return_msg'} {。;
}
别的{
回声经营结果。refundqueryresult美元'result_code'} {。;
回声错误代码:美元refundqueryresult { 'err_code'}。;
回声错误代码的描述:refundqueryresult美元{ 'err_code_des'}。;
回声公共账号:美元refundqueryresult { 'appid'}。;
回声号商船:美元refundqueryresult { 'mch_id'}。;
回声亚商人数:refundqueryresult美元{ 'sub_mch_id'}。;
回声设备号:refundqueryresult美元{ 'device_info'}。;
回声的签名:refundqueryresult美元符号{ }。;
回声微信订单号:refundqueryresult美元{ 'transaction_id'}。;
回声商户订单号:refundqueryresult美元{ 'out_trade_no'}。;
回声退款笔数:refundqueryresult美元{ 'refund_count'}。;
回声商人退单号码:refundqueryresult美元{ 'out_refund_no'}。;
回声微信退款单:美元refundqueryresult { 'refund_idrefund_id'}。;
回声退道:refundqueryresult美元{ 'refund_channel'}。;
回声退款金额:美元refundqueryresult { 'refund_fee'}。;
回声现金券退款:美元refundqueryresult { 'coupon_refund_fee'}。;
回声退款状态:美元refundqueryresult { 'refund_status'}。;
}
}
>




微信支付源码下载

以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。