php实现微信支付

在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' => [],

二:实现微信支付

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文件中发起支付

//数组内为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();

}

在异步回调地址中获取微信支付回调只需要使用如下方法即可:$payment = Yii::$app->wechat->payment;

$response = $payment->handlePaidNotify(function($message, $fail) {

//支付结果逻辑,只有在函数里 return true; 才代表处理完成

});

$response->send();

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

php实现支付宝支付

一:在php中安装支付宝插件composer require alipaysdk/easysdk

二:php实现支付宝支付

1:配置支付宝/**

* 支付宝配置

*/

public static function getOptions()

{

$options = new Config();

$options->protocol = 'https';

$options->gatewayHost = 'openapi.alipay.com';

$options->signType = 'RSA2';

$options->appId = '';

// 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中

$options->merchantPrivateKey = '';

$options->alipayCertPath = '';

$options->alipayRootCertPath = '';

$options->merchantCertPath = '';

//注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可

// $options->alipayPublicKey = '';

//可设置异步通知接收服务地址(可选)

$options->notifyUrl = "";

//可设置AES密钥,调用AES加解密相关接口时需要(可选)

//$options->encryptKey = "";

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实现微信和支付宝支付相关推荐

  1. 微信、支付宝二码合一扫码支付实现思路

    一.支付二维码(预订单) 根据需要购买的信息创建预订单,将订单信息保存到Redis中,并设置有效期,注意生产二维码的链接后的参数可以关联到Redis中的key: QRCode  为servlet扫码请 ...

  2. 【紧急】支付宝全面停止微信合作

    在13年未,刚刚过去的淘宝停止微信入口后,14年2月13日开始,支付宝又开始单方面停止微信的支付接口合作. 我们联系到了支付宝公司,支付宝的客服人员对此事做出了明确的答复:      在微信场景下(比 ...

  3. 支付宝红包强攻微信社交,臆想出来的豪门恩怨

    在很多人眼里,支付宝与微信就是一对冤家,经常高调缠斗,一会儿是微信抢夺支付宝的核心支付阵地,号称几个小时干了支付宝十几年的事,一会儿又变成了支付宝挑战微信的社交关系链,想着从微信拉走亿万朋友圈用户. ...

  4. 用支付宝和微信可以直接跳转拉起支付,API搭建比较方便第三方支付接口首选杉德比较靠谱,

    向正在寻求个人支付方案的开发者朋友们提供一些信息,希望能给他们一定的帮助,结合自己的使用环境.业务领域和应用场景自行选择.对提到的所有第三方支付工具.第四方聚合支付工具绝无恶意贬低. 如何选择一个靠谱 ...

  5. 支付宝H5,微信H5,微信公众号支付回调

    业务场景 应公司需求,需要在项目中接入支付宝h5支付,微信h5支付和微信公众号支付功能,本编主要讲述支付踩坑和h5支付后跳转的回调问题 微信h5支付 微信h5支付时需要校验下单域名,微信从refere ...

  6. 浅析hybrid模式下地支付宝钱包和微信

    开篇 近期一直在为插件式开发而不断探询,对于android端已经有一套插件式开发的框架,有通过java的反射机制实现的plugin,但目前我还没有找到一套完整的开源的框架,后期继续寻找.而对于iOS端 ...

  7. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况

    我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...

  8. 血泪总结:如何从微信小程序的坑跳进支付宝小程序的大坑

    众所周知,iOS没人要了,小程序现在火了... 哈哈,开玩笑,不过小程序真是非常火 所以,今天我就来讲讲最近折腾出的小程序总结:如何从微信小程序的坑跳进支付宝小程序的大坑! 小程序非常适合不经常使用的 ...

  9. 支付宝 收款通知 mysql_基于支付宝微信通知的一种个人收款回调方案(转)

    最近闲来无事,看到网上有一些免签支付回调的服务商,当时感觉很新奇,于是自己动手看看怎么玩的,先看成果 App上监听通知并向服务器POST支付信息 服务端的支付订单表 下面说原理及流程 1.App上使用 ...

  10. 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助

    分享一款市面比较好用的收款工具 SHOUK8 个人微信支付宝收款工具  微信支付宝财付通免签约收款即时到帐辅助 支持个人支付宝微信 个人微信支付宝免签约,不经过第三方中转,自己应用支持对接任何语言开发 ...

最新文章

  1. 盘点一下数据库的误操作有哪些后悔药?
  2. java executor_Java 动态语言支持
  3. 「后端小伙伴来学前端了」Vue中全局事件总线(GlobalEventBus)原理及探究过程
  4. centos7.5 使用报错:用户名 不在 sudoers文件中,此事将被报告。
  5. opencv书籍调研
  6. 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
  7. Padrino 生成器指南
  8. 关于Java中子类调用父类方法
  9. python编程*三角形图形创意图片_Python图形编程探索系列-04-网上图片与标签组件的结合...
  10. iso27001认证怎么申请?(iso27001认证基本条件和详细流程)
  11. 无线安全破解软件汇总和破解技术资源汇总
  12. 苹果carplay下载_苹果宣布推出CarPlay
  13. python泰坦尼克号数据分析_利用python分析泰坦尼克号数据集
  14. 建站之星网站 和服务器,建站之星网站 和服务器
  15. 开心农场违规 恐面临关停危险
  16. Win10本地配置完hadoop_home任然报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  17. 新买电脑C盘太大?只有一个C盘?如何分解C盘?电脑分盘,保姆级教学
  18. 图标(ico,cur)文件的结构解析
  19. python爬虫------从丁香园疫情首页提取世界各国的疫情数据
  20. Hadoop:MapReduce编程之统计每个订单价格最高的商品信息

热门文章

  1. 2019-数学建模美赛-B题翻译
  2. 软考数据库系统工程师是什么?如何备考?
  3. 蜗牛星际NAS安装黑群晖V6.2.1+洗白+免U盘引导启动
  4. 3.7-10设计一个算法,采用分治法求一个整数序列中的最大最小元素
  5. 用Python自动化爬取CNKI知网数据(批量下载PDF论文)
  6. 项目日志 Log4cpp
  7. 《精通开关电源设计》笔记
  8. qq拼音输入法下载|qq拼音输入法纯净版下载
  9. 1.6QQ拼音输入的亮点——相框
  10. 计算机人工智能识别系统应用领域,人工智能论文3000字以上