php对接微信支付

编程入门 行业动态 更新时间:2024-10-28 00:26:34

<a href=https://www.elefans.com/category/jswz/34/1770834.html style=php对接微信支付"/>

php对接微信支付

登录微信商户>开通对应功能

JSAPI支付>(微信收款-网页-小程序-PC端web)

官方文档:/ sapi-payment/preparation.html

1.设置你得API网址请求支付的链接

下载官网的api实例

推荐使用 PHP 包管理工具 Composer 安装 SDK:

composer require wechatpay/wechatpay

证书下载实例代码>或者使用[微信支付商户平台证书].exe程序配置

微信支付商户平台证书>.html

<?phprequire_once('vendor/autoload.php');use WeChatPay\Builder;
use WeChatPay\Crypto\Rsa;
use WeChatPay\Util\PemUtil;// 设置参数// 商户号
$merchantId = '190000****';// 从本地文件中加载「商户API私钥」,「商户API私钥」会用来生成请求的签名
$merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem';
$merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);// 「商户API证书」的「证书序列号」
$merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********';// 从本地文件中加载「微信支付平台证书」,用来验证微信支付应答的签名
$platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem';
$platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);// 从「微信支付平台证书」中获取「证书序列号」
$platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath);// 构造一个 APIv3 客户端实例
$instance = Builder::factory(['mchid'      => $merchantId,'serial'     => $merchantCertificateSerial,'privateKey' => $merchantPrivateKeyInstance,'certs'      => [$platformCertificateSerial => $platformPublicKeyInstance,],
]);// 发送请求
$resp = $instance->chain('v3/certificates')->get(['debug' => true] // 调试模式,.html#debug
);
echo $resp->getBody(), PHP_EOL

使用>.shtml

web二维码

这里代码对应在设置商户的开发配置的url请求

{"mchid": "1900006XXX","out_trade_no": "native12177525012014070332333","appid": "wxdace645e0bc2cXXX","description": "Image形象店-深圳腾大-QQ公仔","notify_url": "/","amount": {"total": 1,"currency": "CNY"}
}

请求URL:

请求方式: POST

请求参数

参数名变量类型[长度限制]必填描述
应用IDappidstring[1,32]body由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID`` 示例值:wxd678efh567hg6787
直连商户号mchidstring[1,32]body直连商户的商户号,由微信支付生成并下发。`` 示例值:1230000109
商品描述descriptionstring[1,127]body商品描述`` 示例值:Image形象店-深圳腾大-QQ公仔
商户订单号out_trade_nostring[6,32]body商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一`` 示例值:1217752501201407033233368018
交易结束时间time_expirestring[1,64]body订单失效时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。`` 示例值:2018-06-08T10:34:56+08:00
附加数据attachstring[1,128]body附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。`` 示例值:自定义数据
通知地址notify_urlstring[1,256]body通知URL必须为直接可访问的URL,不允许携带查询串,要求必须为https地址。格式:URL 示例值:.php
订单优惠标记goods_tagstring[1,32]body订单优惠标记`` 示例值:WXG
电子发票入口开放标识support_fapiaobooleanbody传入true时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效。true:是false:否`` 示例值:true
**+**订单金额amountobjectbody订单金额信息
**+**优惠功能detailobjectbody优惠功能
**+**场景信息scene_infoobjectbody支付场景描述
**+**结算信息settle_infoobjectbody结算信息

返回参数

参数名变量类型[长度限制]必填描述
二维码链接code_urlstring[1,512]此URL用于生成支付二维码,然后提供给用户扫码支付。**注意:code_url并非固定值,使用时按照URL格式转成二维码即可。** 示例值:weixin://wxpay/bizpayurl/up?pr=NwY5Mz9&groupid=00

小程序

请求URL:

请求方式: POST


{"mchid": "1900006XXX","out_trade_no": "1217752501201407033233368318","appid": "wxdace645e0bc2cXXX","description": "Image形象店-深圳腾大-QQ公仔","notify_url": ".php","amount": {"total": 1,"currency": "CNY"},"payer": {"openid": "o4GgauInH_RCEdvrrNGrntXDuXXX"}
}

请求参数

参数名变量类型[长度限制]必填描述
应用IDappidstring[1,32]body由微信生成的应用ID,全局唯一。请求基础下单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的服务号APPID`` 示例值:wxd678efh567hg6787
直连商户号mchidstring[1,32]body直连商户的商户号,由微信支付生成并下发。`` 示例值:1230000109
商品描述descriptionstring[1,127]body商品描述`` 示例值:Image形象店-深圳腾大-QQ公仔
商户订单号out_trade_nostring[6,32]body商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一`` 示例值:1217752501201407033233368018
交易结束时间time_expirestring[1,64]body订单失效时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。`` 示例值:2018-06-08T10:34:56+08:00
附加数据attachstring[1,128]body附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。`` 示例值:自定义数据
通知地址notify_urlstring[1,256]body异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。
公网域名必须为https,如果是走专线接入,使用专线NAT IP或者私有回调域名可使用http`` 示例值:.php
订单优惠标记goods_tagstring[1,32]body订单优惠标记`` 示例值:WXG
电子发票入口开放标识support_fapiaobooleanbody传入true时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效。true:是false:否`` 示例值:true
**+**订单金额amountobjectbody订单金额信息
**+**支付者payerobjectbody支付者信息
**+**优惠功能detailobjectbody优惠功能
**+**场景信息scene_infoobjectbody支付场景描述
**+**结算信息settle_infoobjectbody结算信息

返回参数

参数名变量类型[长度限制]必填描述
预支付交易会话标识prepay_idstring[1,64]预支付交易会话标识。用于后续接口调用中使用,该值有效期为2小时`` 示例值:wx201410272009395522657a690389285100

更多推荐

php对接微信支付

本文发布于:2023-12-05 14:10:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664458.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:php

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!