php实现微信和支付宝支付的示例代码

php实现微信支付

微信支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html

在php下实现微信支付,这里我使用了EasyWeChat

这里我是在Yii框架实现的,安装EasyWeChat插件

composer require jianyan74/yii2-easy-wechat

一:配置EasyWeChat

1:在config/main.php 的 component中添加EasyWeChat的SDK

'components' => [
  // ...
  'wechat' => [
    'class' => 'jianyan\easywechat\Wechat',
    'userOptions' => [], // 用户身份类参数
    'sessionParam' => 'wechatUser', // 微信用户信息将存储在会话在这个密钥
    'returnUrlParam' => '_wechatReturnUrl', // returnUrl 存储在会话中
    'rebinds' => [ // 自定义服务模块
      // 'cache' => 'common\components\Cache',
    ]
  ],
  // ...
]

2:在config/params.php中设置基础配置信息和微信支付信息

// 微信配置 具体可参考EasyWechat
'wechatConfig' => [],
// 微信支付配置 具体可参考EasyWechat
'wechatPaymentConfig' => [],
// 微信小程序配置 具体可参考EasyWechat
'wechatMiniProgramConfig' => [],
// 微信开放平台第三方平台配置 具体可参考EasyWechat
'wechatOpenPlatformConfig' => [],
// 微信企业微信配置 具体可参考EasyWechat
'wechatWorkConfig' => [],
// 微信企业微信开放平台 具体可参考EasyWechat
'wechatOpenWorkConfig' => [],
// 微信小微商户 具体可参考EasyWechat
'wechatMicroMerchantConfig' => [],

具体配置方法可以参考GitHub的说明:https://github.com/jianyan74/yii2-easy-wechat

二:实现微信支付

1:微信支付api

$data = [
  'body' => '',//支付描述
  'out_trade_no' => '',//订单号
  'total_fee' => '',//支付金额
  'notify_url' => '', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
  'trade_type' => 'JSAPI',//支付方式
  'openid' => '',//用户openid
];
// 生成支付配置
$payment = Yii::$app->wechat->payment;
$result = $payment->order->unify($data);
if ($result['return_code'] == 'SUCCESS') {
  $prepayId = $result['prepay_id'];
  $config = $payment->jssdk->sdkConfig($prepayId);
} else {
  throw new yii\base\ErrorException('微信支付异常, 请稍后再试');
}
return $this->render('wxpay', [
  'jssdk' => $payment->jssdk, // $app通过上面的获取实例来获取
  'config' => $config
]);

2:在wxpay.php文件中发起支付

<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
  //数组内为jssdk授权可用的方法,按需添加,详细查看微信jssdk的方法
  wx.config(<?php echo $jssdk->buildConfig(array('chooseWXPay'), true) ?>);
  function onBridgeReady(){
    // 发起支付
    wx.chooseWXPay({
      timestamp: <?= $config['timestamp'] ?>,
      nonceStr: '<?= $config['nonceStr'] ?>',
      package: '<?= $config['package'] ?>',
      signType: '<?= $config['signType'] ?>',
      paySign: '<?= $config['paySign'] ?>', // 支付签名
      success: function (res) {
        // 支付成功后的回调函数
      },
      cancel: function(r) {
        //支付取消后的回调函数
      },
    });
  }
  if (typeof WeixinJSBridge == "undefined"){
    if( document.addEventListener ){
      document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
    }else if (document.attachEvent){
      document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
      document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
    }
  }else{
    onBridgeReady();
  }
</script>

在异步回调地址中获取微信支付回调只需要使用如下方法即可:

$payment = Yii::$app->wechat->payment;
$response = $payment->handlePaidNotify(function($message, $fail) {
  //支付结果逻辑,只有在函数里 return true; 才代表处理完成
});
$response->send();

根据如上步骤就可以实现微信支付

php实现支付宝支付

支付宝支付文档地址:https://opendocs.alipay.com/open/00y8k9

一:在php中安装支付宝插件

composer require alipaysdk/easysdk

alipaysdk/easysdk的GitHub地址:https://github.com/alipay/alipay-easysdk/tree/master/php

二:php实现支付宝支付

1:配置支付宝

/**
 * 支付宝配置
 */
public static function getOptions()
{
  $options = new Config();
  $options->protocol = 'https';
  $options->gatewayHost = 'openapi.alipay.com';
  $options->signType = 'RSA2';
  $options->appId = '<-- 请填写您的AppId,例如:2019022663440152 -->';
  // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
  $options->merchantPrivateKey = '<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->';
  $options->alipayCertPath = '<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey\_RSA2.crt -->';
  $options->alipayRootCertPath = '<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt" -->';
  $options->merchantCertPath = '<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey\_2019051064521003.crt -->';
  //注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
  // $options->alipayPublicKey = '<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->';
  //可设置异步通知接收服务地址(可选)
  $options->notifyUrl = "<-- 请填写您的支付类接口异步通知接收服务地址,例如:https://www.test.com/callback -->";
  //可设置AES密钥,调用AES加解密相关接口时需要(可选)
  //$options->encryptKey = "<-- 请填写您的AES密钥,例如:aa4BtZ4tspm2wnXLb1ThQA== -->";
  return $options;
}

2:实现支付宝支付

//加载支付宝配置
Factory::setOptions(self::getOptions());
try {
  //发起API调用
  $result = Factory::payment()->wap()->pay('订单标题', '商户订单号', '订单总金额', '用户付款中途退出返回商户网站的地址', '支付回调地址');
  $responseChecker = new ResponseChecker();
  //处理响应或异常
  if ($responseChecker->success($result)) {
    //调用成功
    return $result->body;
  } else {
    //调用失败
    $errorMsg = $result->msg . $result->subMsg;
    throw new yii\\base\\ErrorException($errorMsg);
  }
} catch (\\Exception $e) {
  throw new yii\\base\\ErrorException($e->getMessage());
}

根据如上就可以实现支付宝支付

到此这篇关于php实现微信和支付宝支付的示例代码的文章就介绍到这了,更多相关php实现微信和支付宝支付内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHP后台微信支付和支付宝支付开发

    关于支付的流程之类的就不做解释,大家可以自行搜索! 微信支付 项目前提:本人用的是tp框架,PHP语言 下载到微信平台提供的微信支付接口文件,放在了tp第三方类库vendor,命名为WxpayAPI WxpayAPI/lib/WxPay.Api.php 接口访问类; WxpayAPI/lib/WxPay.Config.php 配置账号信息; WxpayAPI/lib/WxPay.Data.php 数据对象基础类; WxpayAPI/lib/WxPay.Exception.php 微信支付API异

  • php实现微信和支付宝支付的示例代码

    php实现微信支付 微信支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html 在php下实现微信支付,这里我使用了EasyWeChat 这里我是在Yii框架实现的,安装EasyWeChat插件 composer require jianyan74/yii2-easy-wechat 一:配置EasyWeChat 1:在config/main.php 的 component中添加EasyWeChat的SDK 'components' =>

  • springboot 集成支付宝支付的示例代码

    最简单的springboot集成支付宝 1 注册沙箱 沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下 然后沙箱需要注册一下,非常之简单,注册好以后进入到如下页面,选沙箱工具,然后下载一个生成密钥的工具.然后解压按照里面的readme生成公私密钥, 选择沙箱应用 上传公钥即可..沙箱到这里就基本完成了,里面还有沙箱版本的的android app可以下载下来. java 程序 1 新建一个springboot项目 因为我们创建的是一个web工程,所以,仅仅演示支付宝的demo,只需

  • python修改微信和支付宝步数的示例代码

    项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该python脚本可以帮你实现. 实现方法 手机安装第三方软件乐心健康,注册账号登录,将运动数据同步到微信和支付宝.用python脚本远程修改乐心健康当前登录账号的步数即可. 第一步:在手机上安装乐心健康app. 安卓版下载地址:乐心健康安卓版 苹果版下载地址:乐心健康iOS版 乐心运动app for android v3.0 安卓版 第二步:注册账号登录,并设置登

  • Android支付宝支付的示例代码

    上一篇,我们已经详细讲解了Android微信支付,今天接着为大家带来支付宝支付,支付宝支付相对微信支付要简单一些,吐槽一下,而且支付宝文档确实比微信的文档好了不少,下面开始讲解支付流程. 1.首先给出官方文档的地址 Android集成支付宝流程 2.在开始集成和开发前,首先了解一下常用的接入方式和架构建议: 支付流程.png 在开始下一步之前,给大家看看网上的很多操作. 网上的代码.png 这一大堆代码,后面还有,百来行吧,而且支付宝Demo貌似也是这么干的,估计一些新司机就有点懵逼了,至于吗?

  • Django实现微信小程序支付的示例代码

    1.下载相关的库 微信官方已经提供了方便开发者的SDK,可是使用pip方式下载: pip install wechatpy 2. 在项目的settings.py文件添加相关配置 具体的参数需要自己到小程序微信公众平台和微信商户平台获取. WECHAT = { 'APPID': 'appid', # 小程序ID 'APPSECRET': 'appsecret', # 小程序SECRET 'MCH_ID': 'mch_id', # 商户号 'TOTAL_FEE': '1', # 总金额, 单位为"分

  • Laravel使用支付宝进行支付的示例代码

    本文介绍了Laravel使用支付宝进行支付的示例代码,分享给大家,也给自己留个笔记 /* 支付 */ public function pay() { header("content-type:text/html;charset=utf8"); //echo 1;die; // ******************************************************配置 start********************************************

  • Java 实现微信和支付宝支付功能

    一.前期准备 1.申请好微信商户号appid,拿到商户id和商户秘钥,退款的话需要商户证书 2.申请好支付宝商户号appid,商户公钥和秘钥(需要用支付宝工具自己生成),支付宝退款不需要证书 二.数据库表设计 1.微信支付配置表 CREATE TABLE `py_wx_config` ( `wx_config_id` varchar(18) NOT NULL COMMENT '微信支付配置ID', `appid` varchar(128) DEFAULT NULL COMMENT '微信公众号I

  • Vue+SpringBoot实现支付宝沙箱支付的示例代码

    首先去下载支付宝沙箱的一系列东西,具体的配置什么的我就不说了,有很多博客都讲了,还有蚂蚁金服官方也说的很详细,我就直接说怎么样把后端的支付页面显示到Vue前端来: 在你配置好AlipayConfig这个文件后,就可以写前端的逻辑了,前端是采用支付宝的页面如下: 下面展示一些 内联代码片. /* 以下是支付确认html */ <div style="text=#000000 bgColor=#ffffff leftMargin=0 topMargin=4"> <head

  • Python实现钉钉/企业微信自动打卡的示例代码

    每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的Python 一部24小时可以放公司的安卓手机或电脑安装模拟器 ADB工具 2 ADB的安装配置 去下载ADB安装包,安装后在环境变量Path中添加目录 2.1 UIautomator2的安装 # 安装 uiautomator2(PC端) pip3 install -U uiautomator2 3

  • Django实现支付宝付款和微信支付的示例代码

    支付宝支付和微信支付是当今互联网产品常用的功能,我使用Django Rest Framework实现了网页上支付宝支付和微信支付的一个通用服务,提供rpc接口给其他服务,包括获取支付宝支付页面url的rpc接口.支付宝支付成功异步回调http接口.获取微信支付二维码rpc接口.主动查询微信订单是否支付的rpc接口等. 支付宝网站支付需要蚂蚁金服开放平台账号,创建应用.配置秘钥等步骤请参考:蚂蚁金服支付宝电脑网站支付快速接入 微信网站支付需要到微信支付官网注册服务商账号, 目录结构如下: 1.mo

随机推荐