thinkphp整合系列之微信扫码支付-码支付

微信支付怎么实现扫商户维码后输入金额支付

...一个订单被扫码了但是没支付成功,如果再重新支付的话二维码就生成不出来了。 那订单号是唯一的 怎么重复生成二维码呢? 这扫码支付也没同步,是不是只要扫了一下就不能刷新再调用这个二维码了?新订单号是可以...

一:导入sdk
/ThinkPHP/Library/Vendor/Weixinpay
鹅厂的sdk那酸爽谁用谁知道;就不吐槽了;项目中的sdk是我根据官方文档重构精简打造而成的;
二:配置项
/Application/Common/Conf/config.php'WEIXINPAY_CONFIG'       => array(
   'APPID'              => '', // 微信支付APPID
   'MCHID'              => '', // 微信支付MCHID 商户收款账号
   'KEY'                => '', // 微信支付KEY
   'APPSECRET'          => '', // 公众帐号secert (公众号支付专用)
   'NOTIFY_URL'         => 'http://bayao.com/Api/Weixinpay/notify', // 接收支付状态的连接
   ),
PHPCopy

开通微信支付后;会收到一封包含账号密码的邮件;登录微信支付凑齐上面这些参数;
三:支付函数
/Application/Common/Common/function.php

/**
* 微信扫码支付
* @param  array $order 订单 必须包含支付所需要的参数 body(产品描述)、total_fee(订单金额)、out_trade_no(订单号)、product_id(产品id)
*/function weixinpay($order){
   $order['trade_type']='NATIVE';
   Vendor('Weixinpay.Weixinpay');
   $weixinpay=new \Weixinpay();
   $weixinpay->pay($order);}
PHPCopy

调用函数会生成一个二维码;用微信扫码即可支付;

// 虚拟的订单 请根据实际业务更改$time=time();$order=array(
   'body'=>'test',
   'total_fee'=>1,
   'out_trade_no'=>strval($time),
   'product_id'=>1
   );weixinpay($order);
PHPCopy

四:异步接收通知
/Application/Api/Controller/WeixinpayController.class.php

/**
* notify_url接收页面
*/public function notify(){
   // 导入微信支付sdk
   Vendor('Weixinpay.Weixinpay');
   $wxpay=new \Weixinpay();
   $result=$wxpay->notify();
   if ($result) {
       // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id

   }}
PHPCopy

和支付宝不同的是;微信支付并没有支付成功后跳转回来的过程;所以都是异步接收通知的;
//*************************收到反馈后补充的分割线*********************************
如果是整合到自己已有的项目中;则需要添加生成二维码的函数;
具体的可以参考 thinkphp整合系列之phpqrcode生成二维码

//*************************关于签名错误的拍错*********************************
如果出现签名错误;
可以使用官方的 微信公众平台支付接口调试工具
跟自己生产的签名对比;
然后对比配置;查找不一致的地方;

//*****************关于不知道怎么查看异步发过来的数据的补充*****************
2016.10.28:
好多童鞋在问支付后;不知道怎么查看接收到的支付状态通知;
这里做个补充;首先;我们的服务器必须是外网可以正常访问到的;
必须注意不能有 登录或者权限之类的拦截;
另外补充一个简单的查看收到的内容的方法用于测试;
四:异步接收通知
/Application/Api/Controller/WeixinpayController.class.php

/**
* notify_url接收页面
*/public function notify(){
   // ↓↓↓下面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;↓↓↓
   // 获取xml
   $xml=file_get_contents('php://input', 'r');
   //转成php数组 禁止引用外部xml实体
   libxml_disable_entity_loader(true);
   $data= json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA));
   file_put_contents('./notify.text', $data);
   // ↑↑↑上面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;↑↑↑
   // 导入微信支付sdk
   Vendor('Weixinpay.Weixinpay');
   $wxpay=new \Weixinpay();
   $result=$wxpay->notify();
   if ($result) {
       // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id


微信扫码支付模式二的订单号问题

...一个订单被扫码了但是没支付成功,如果再重新支付的话二维码就生成不出来了。 那订单号是唯一的 怎么重复生成二维码呢? 这扫码支付也没同步,是不是只要扫了一下就不能刷新再调用这个二维码了?新订单号是可以...

微信发支付宝红包(花呗)

...>  进入自己的支付宝红包“天天领红包”,分享二维码到微信,然后用网上的识别二维码的工具或网页将支付宝二维码解析一下,解析结果是一个url,例如: https://qr.alipay.com/c1x03265dgsyarmbs6a1k64 ...

TP3.2 支付宝,即时到账,扫维码

支付时,能不能获取支付的二维码,不跳转到支付宝的那扫二维码支付页面?

微信支付开发(11) Native支付,native支付_PHP教程

...2f67ccb5×tamp=1408025996 二、生成二维码 生成二维码可以用第三方接口,也可以使用自己的代码或插件,这里介绍PHP QR Code。 PHP QR Code是一个PHP二维码生成类库,利用它可以轻松...

关于php给ios提供模式二的微信扫码支付

...ative.php打开看一下,你就知道通过 code_url 生成二维码,微信一扫就出现支付页面了//模式一 /** * 流程: * 1、组装包含支付信息的url,生成二维码 * 2、用户扫描二维码,进行支付 * 3、确定支付之后,微信服...

支付宝扫描维码跳转到***转账页面(升级版,隐藏卡号)

目前业界普遍使用的微信、支付宝、第三方、第四方收款渠道,正遭大规模的封号、冻结、卡钱等等等等...您是否也是为此头疼已久?是否还有真正稳定的收款渠道?别急!试试支付宝快捷充值技术!支付宝扫一扫直接到账***...

支付宝扫描维码跳转到***转账页面(升级版,隐藏卡号)

目前业界普遍使用的微信、支付宝、第三方、第四方收款渠道,正遭大规模的封号等...您是否也是为此头疼已久?是否还有真正稳定的收款渠道?别急!试试支付宝快捷充值技术!支付宝扫一扫直接到账***!成功率100%,不再...

维码跳转 - PHP 后端控制前端跳转?比如手机扫维码支付后页面跳转。

... 微信(支付宝)手机支付 微信(qq)手机扫二维码后登入 请问如何实现? 如果可以请大概解释一下原理。

支付宝扫描维码跳转到***转账页面(升级版,隐藏卡号)

目前业界普遍使用的微信、支付宝、第三方、第四方收款渠道,正遭大规模的封号、冻结、卡钱等等等等...您是否也是为此头疼已久?是否还有真正稳定的收款渠道?别急!试试支付宝快捷充值技术!支付宝扫一扫直接到账***...

支付宝扫描维码跳转到***转账页面(升级版,隐藏卡号)

目前业界普遍使用的微信、支付宝、第三方、第四方收款渠道,正遭大规模的封号、冻结、卡钱等等等等...您是否也是为此头疼已久?是否还有真正稳定的收款渠道?别急!试试支付宝快捷充值技术!支付宝扫一扫直接到账***...