php关联微信支付宝,php实现微信和支付宝支付
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实现微信和支付宝支付相关推荐
- 微信、支付宝二码合一扫码支付实现思路
一.支付二维码(预订单) 根据需要购买的信息创建预订单,将订单信息保存到Redis中,并设置有效期,注意生产二维码的链接后的参数可以关联到Redis中的key: QRCode 为servlet扫码请 ...
- 【紧急】支付宝全面停止微信合作
在13年未,刚刚过去的淘宝停止微信入口后,14年2月13日开始,支付宝又开始单方面停止微信的支付接口合作. 我们联系到了支付宝公司,支付宝的客服人员对此事做出了明确的答复: 在微信场景下(比 ...
- 支付宝红包强攻微信社交,臆想出来的豪门恩怨
在很多人眼里,支付宝与微信就是一对冤家,经常高调缠斗,一会儿是微信抢夺支付宝的核心支付阵地,号称几个小时干了支付宝十几年的事,一会儿又变成了支付宝挑战微信的社交关系链,想着从微信拉走亿万朋友圈用户. ...
- 用支付宝和微信可以直接跳转拉起支付,API搭建比较方便第三方支付接口首选杉德比较靠谱,
向正在寻求个人支付方案的开发者朋友们提供一些信息,希望能给他们一定的帮助,结合自己的使用环境.业务领域和应用场景自行选择.对提到的所有第三方支付工具.第四方聚合支付工具绝无恶意贬低. 如何选择一个靠谱 ...
- 支付宝H5,微信H5,微信公众号支付回调
业务场景 应公司需求,需要在项目中接入支付宝h5支付,微信h5支付和微信公众号支付功能,本编主要讲述支付踩坑和h5支付后跳转的回调问题 微信h5支付 微信h5支付时需要校验下单域名,微信从refere ...
- 浅析hybrid模式下地支付宝钱包和微信
开篇 近期一直在为插件式开发而不断探询,对于android端已经有一套插件式开发的框架,有通过java的反射机制实现的plugin,但目前我还没有找到一套完整的开源的框架,后期继续寻找.而对于iOS端 ...
- vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况
我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...
- 血泪总结:如何从微信小程序的坑跳进支付宝小程序的大坑
众所周知,iOS没人要了,小程序现在火了... 哈哈,开玩笑,不过小程序真是非常火 所以,今天我就来讲讲最近折腾出的小程序总结:如何从微信小程序的坑跳进支付宝小程序的大坑! 小程序非常适合不经常使用的 ...
- 支付宝 收款通知 mysql_基于支付宝微信通知的一种个人收款回调方案(转)
最近闲来无事,看到网上有一些免签支付回调的服务商,当时感觉很新奇,于是自己动手看看怎么玩的,先看成果 App上监听通知并向服务器POST支付信息 服务端的支付订单表 下面说原理及流程 1.App上使用 ...
- 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助
分享一款市面比较好用的收款工具 SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助 支持个人支付宝微信 个人微信支付宝免签约,不经过第三方中转,自己应用支持对接任何语言开发 ...
最新文章
- 盘点一下数据库的误操作有哪些后悔药?
- java executor_Java 动态语言支持
- 「后端小伙伴来学前端了」Vue中全局事件总线(GlobalEventBus)原理及探究过程
- centos7.5 使用报错:用户名 不在 sudoers文件中,此事将被报告。
- opencv书籍调研
- 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
- Padrino 生成器指南
- 关于Java中子类调用父类方法
- python编程*三角形图形创意图片_Python图形编程探索系列-04-网上图片与标签组件的结合...
- iso27001认证怎么申请?(iso27001认证基本条件和详细流程)
- 无线安全破解软件汇总和破解技术资源汇总
- 苹果carplay下载_苹果宣布推出CarPlay
- python泰坦尼克号数据分析_利用python分析泰坦尼克号数据集
- 建站之星网站 和服务器,建站之星网站 和服务器
- 开心农场违规 恐面临关停危险
- Win10本地配置完hadoop_home任然报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- 新买电脑C盘太大?只有一个C盘?如何分解C盘?电脑分盘,保姆级教学
- 图标(ico,cur)文件的结构解析
- python爬虫------从丁香园疫情首页提取世界各国的疫情数据
- Hadoop:MapReduce编程之统计每个订单价格最高的商品信息