加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网_南昌站长网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php支付宝扫码支付接口

发布时间:2022-09-21 12:45:48 所属栏目:PHP 来源:
导读:  重大更新

  payment v1.x系列目前仅修复重要bug问题,不再增加新的功能.现阶段主要开发与维护 v2.x.

  具体代码,请查看分支 paymentv2

  paymentv2的相关文档以放在博客中维护,方便更新修改.

  重大更新
 
  payment v1.x系列目前仅修复重要bug问题,不再增加新的功能.现阶段主要开发与维护 v2.x.
 
  具体代码,请查看分支 paymentv2
 
  paymentv2的相关文档以放在博客中维护,方便更新修改.
 
  更新说明
 
  201-6-22 增加支付退款接口 调用方法,请看: examples/refund.php
 
  201-6-21 增加微信网站扫码支付接口 调用方法,请看: examples/wxcharge.php
 
  项目介绍
 
  集成了支付宝的即时到帐、移动支付、订单查询接口
 
  集成了微信的APP支付、订单查询接口
 
  运行时,需要 php 5.5 以上的版本。目前5.4的php版本也可运行。但后期可能会放弃该版本。
 
  项目中所有的金额传输单位全部为元。lib会自动在向微信支付时,处理为分。支付宝支付时保持不变。
 
  强烈建议,请查看 examples 文件中的示例代码。以下文档内容仅供参考,后期可能不能及时更新。
 
  安装
 
  建议安装方式:
 
  composer require riverslei/payment
 
  一般安装方式:
 
  直接下载项目,然后通过 payment/autoload.php 来引入项目。
 
  对于还在使用不支持命名空间的同学,你们可以自己改造。不打算发布一个不支持命名空间的项目
 
  调用方式
 
  本来说想周末再补充文档。不过昨天发的项目,今天一看都差不多40个start了。我想不能等了。得早点把文档给出来。
 
  支付宝网站支付
 
  首先使用支付宝之前,需要在做以下几个配置
 
  修改 src/Alipay/AlipayConfig.php 这个配置文件。其中涉及到的信息在登陆商户支付版后,均可找到。需要注意的是
 
  rsa秘钥的生成与上传。切记上传时一定检查是否有空格,有空格肯定报错,报错别问我。
 
  生成的rsa秘钥,一定要放在 src/Alipay/safekey 这个文件夹下面。一把来说我不要求你的文件命令,但是别用中文命令,最好直接默认使用生成出来的命令。
 
  现在来说说调用的事。
 
  首选使用支付前,需要获得一个支付对象。由于支付对象有多个(微信APP、支付宝网站、支付宝移动支付等),所以这里通过依赖接口,静态工厂方法,来方便大家使用。
 
  下面示例代码是:支付宝网站支付的演示代码。这里如果不够清晰,可以看 examples 文件夹中的示例代码。
 
  $alipayDirect = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_ALIPAY_DIRECT);
 
  $payData = [
 
  "order_no"=> 'F616699445072025',// 必须, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
 
  "amount"=> '0.01',// 必须, 订单总金额, 人民币为元
 
  "client_ip"=> '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
 
  "subject"=> 'Older Driver',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
 
  "body"=> '购买Older Driver',// 必须,商品的描述信息
 
  "success_url"=> '#39;,// 必须php支付宝支付接口开发教程, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
 
  "return_url"=> '#39;,
 
  "time_expire"=> '14',// 可选, 订单失效时间,单位是 分钟
 
  "description"=> '',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
 
  ];
 
  try {
 
  $url = $alipayDirect->charges($payData);
 
  } catch (PayException $e) {
 
  echo $e->errorMessage();
 
  }
 
  支付宝移动支付
 
  移动支付的配置与上方相同。所有的支付宝支付,配置都只需要设置以上配置即可。以后对于配置就不在单独描述了。
 
  直接上代码,说怎么调用
 
  $alipayMobile = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_ALIPAY);
 
  $payData = [
 
  "order_no"=> 'F616699445072025',// 必须, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
 
  "amount"=> '0.01',// 必须, 订单总金额, 人民币为元
 
  "client_ip"=> '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
 
  "subject"=> 'Older Driver',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
 
  "body"=> '购买Older Driver',// 必须, 商品的描述信息
 
  "success_url"=> '#39;,// 必须, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
 
  "time_expire"=> '14',// 可选, 订单失效时间,单位是 分钟
 
  "description"=> '',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
 
  ];
 
  try {
 
  $reqArr = $alipayMobile->charges($data);// 调用该函数,会抛出 PayException 异常
 
  var_dump($reqArr);
 
  } catch (PayException $e) {
 
  echo $e->errorMessage();
 
  }
 
  微信APP支付
 
  当前微信支付仅支持APP支付。后期会陆续更新公众号支付。H5支付等功能。
 
  进行微信支付的使用,首要的还是先进行配置。结构与支付宝基本差不多。
 
  打开 src/Wxpay/WxConfig.php 文件,可以根据自己微信的商户平台,找到对应的信息。
 
  把微信平台上相关的key下载后放入 src/Wxpay/safekey 文件夹中。当然这一步也可不做,当前微信没有几个接口在用他们提供的安全文件
 
  通过两步配置完成,可以开始使用了。
 
  $appCharge = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_WX);
 
  $payData = [
 
  "order_no"=> 'F2016dd6dd1a23',// 必须php支付宝支付接口开发教程, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
 
  "amount"=> '1',// 订单总金额, 人民币为元
 
  "subject"=> '测试即时到帐接口',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
 
  "body"=> '即时到帐接口,就是爱支付',// 必须, 商品的描述信息
 
  "client_ip"=> '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
 
  "success_url"=> '#39;,// 必须, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
 
  "time_expire"=> '15',// 可选, 订单失效时间,单位是 分钟
 
  "description"=> '这是附带的业务数据',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
 
  ];
 
  try {
 
  $reqArr = $appCharge->charges($data);// 调用该函数,会抛出 PayException 异常
 
  var_dump($reqArr);
 
  } catch (PayException $e) {
 
  echo $e->errorMessage();
 
  }
 
  订单查询
 
  详细代码还是可以看 `examples/query.php` 文件哈
 
  // 支付宝的回调
 
  $payway = ChargeChannel::CHANNEL_IS_ALIPAY;
 
  // 微信的回调
 
  //$payway = ChargeChannel::CHANNEL_IS_WX;
 
  $value = '1007570439201601142692427764';// 第三方交易号
 
  $key = 'trade_no';// 可取值:out_trade_no:商户网站唯一订单号 trade_no: 第三方交易号
 
  $api = TradeFactory::getInstance($payway);
 
  try {
 
  $data = $api->tradeQuery($value, $key);
 
  /**
 
  * 'subject' => '美团美食购买'// 商品标题
 
  * 'body' => '购买蓉和小厨美食'// 商品描述
 
  * 'amount' => '133400'// 支付的总金额,单位为分
 
  * 'channel' => 'ali'// 支付通道 .此处可能值仅为: ali wx
 
  * 'order_no' => '2016060504005139'// 商户唯一订单号
 
  * 'buyer_id' => '2088122159801601'// 购买者识别码。支付宝为:购买者邮箱,或者手机号码。weiixn为唯一识别码
 
  * 'trade_state' => 'SUCCESS'// 交易状态。SUCCESS—支付成功 REFUND—转入退款 NOTPAY—未支付
 
  * 'transaction_id' => '2016060521001004600254528027'// 第三方的流水号
 

(编辑:草根网_南昌站长网 )

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章