php对接微信支付-详细教学

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

在这里插入图片描述

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

官方文档:https://pay.weixin.qq.com/docs/merchant/products/ sapi-payment/preparation.html

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

下载官网的api实例

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

composer require wechatpay/wechatpay

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

微信支付商户平台证书>https://pay.weixin.qq.com/docs/merchant/development/development-preparation/download-configure-merchant-certificates.html

<?php

require_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] // 调试模式,https://docs.guzzlephp.org/en/stable/request-options.html#debug
);
echo $resp->getBody(), PHP_EOL

使用>https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_1.shtml

web二维码

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

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

请求URL: https://api.mch.weixin.qq.com/v3/pay/transactions/native

请求方式: 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 示例值:https://www.weixin.qq.com/wxpay/pay.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: https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi

请求方式: POST


{
	"mchid": "1900006XXX",
	"out_trade_no": "1217752501201407033233368318",
	"appid": "wxdace645e0bc2cXXX",
	"description": "Image形象店-深圳腾大-QQ公仔",
	"notify_url": "https://www.weixin.qq.com/wxpay/pay.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`` 示例值:https://www.weixin.qq.com/wxpay/pay.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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加金开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值