基于OpenCart 开发支付宝,财付通,微信支付参数错误问题

最近在给OpenCart集成支付宝,财付通和微信扫码支付,其实这些插件都是有的卖的,但是还蛮贵的,还是自己开发集成吧,省钱。但是集成过程中发现了一些坑,有opencart的坑,也有支付sdk的坑,浪费了不少时间,这里整理几条,给需要的人跨坑。

1.微信native 模式二中的notify_url 地址必须是公网地址

2.支付宝的notify_url不能是query string的形式,比如 xxx/notify.php?route=a/b,只能为xxx/notify.php

3.OpenCart 中支付宝和财付通中的同步回调处理中最好unset($_GET[‘route'])再做支付回调验证,否则因为这个多余的参数参与校检导致回调验证不成功

4.微信回调notify的时候是发送数据流,所以GET和POST是获取不到支付后异步通知过来的数据的,用官方的SDK的时候你可以这样改一下:

$GLOBALS["HTTP_RAW_POST_DATA"] = file_get_contents("php://input", "r");
$notify = new PayNotifyCallBack();
$notify->Handle(false);

5.PC浏览器的支付宝用ios设备访问的时候会弹出支付宝客户端来支付,这样是接收不到异步和同步通知的,所以需要判断一下访问设备是移动端还是客户端,如果是移动端的话得用支付宝的wap方式来支付

6.财付通支付QQ浏览器支付一直参数错误,还没找到为什么。

提醒大家在使用OpenCart 开发支付宝,财付通,微信支付的时候,一定要细心,谢谢朋友们关注我们网站,在此脚本支架小编祝大家国庆节快乐。

原文地址:http://www.yuansir-web.com/2015/09/14/opencart-%E5%BC%80%E5%8F%91%E6%94%AF%E4%BB%98%E5%AE%9D%EF%BC%8C%E8%B4%A2%E4%BB%98%E9%80%9A%EF%BC%8C%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%8E%A5%E5%85%A5%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91/

(0)

相关推荐

  • 利用Python开发微信支付的注意事项

    前言 微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑. 要想开发顺利进行,首先要对业务流程有个清晰的认识.这里以微信公众号支付为例,因此也借用微信支付官方文档中的业务流程图: 接下来来关注几个开发过程中的关键点,包括: 1.生成商户订单与调用统一下单 API 2.微信服务器交互的数据格式 3.公众号支付下网页内通过 JS-API 调起支付 4.异步通知商户支付结果(回调) 一.

  • iOS微信支付交互图分析

    微信支付交互图(一) 微信支付交互图(二) 配上自己的理解说明:(不断更新中-) 微信支付的流程图: 1.完成支付主要有三方构成: 用户,商户的App客户端,商户的后台系统,微信客户端,微信的支付系统; 2.用户登录商户的App,在商户的App上选择商品下单,然后通过商户App向商户的后台系统发出支付请求: 3.商户的后台系统接收到用户的支付请求后去调用微信的统一下单API,这时候微信的支付系统收到请求生成预支付单信息(prepay_id)返回给商户后台系统,商户后台系统接收后生成带有签名的客户

  • iOS微信支付开发案例

    微信支付有很多坑的,官方提供的文档一点都不全面,而且demo也比较"羞涩"难懂.很多注意的细节都没有体现出来,走了很多弯路.于是,系统的开发流程如下.(完整的demo附在博客最后面)这里面包括微信支付开发和支付宝开发调用客户端的兼容处理.(两次签名放在移动端,博客中没提到没安装微信客户端的情况,也很简单[WXApi sendReq:request]调用这个方法的返回值为0即可判断.) 一.环境配置 1.首先是https协议访问,在plist设置白名单 2.当你工程中有微信分享.收藏.支

  • android微信支付源码分享

    本文为大家分享了android微信支付源码,供大家参考,具体内容如下 参数配置 public static final String APP_ID ; /** 在微信开放平台注册app,微信给分配的id **/ public static final String MCH_ID; /** 申请开通微信支付,成功后微信会给你发一封邮件,给你分配一个商户平台账号,在资料里有商户ID **/ public static final String API_KEY; /** 在微信发给你的那封邮件里,给你

  • 微信支付PHP SDK —— 公众号支付代码详解

    在微信支付 开发者文档页面 下载最新的 php SDK http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 这里假设你已经申请完微信支付 1. 微信后台配置  如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号. 正式的支付授权目录不能和测试的一样否则会报错.不填

  • 微信支付 :curl出错,错误码:60两个问题的解决

    如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99   Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixin

  • 微信支付的开发流程详解

    最近在公司做了微信支付的接入,这里总结下开发的一些经验 注意,我使用的是微信开放平台的支付,与手机app相关,而与公众账号无关. 微信支付的主要操作流程 1.用户浏览app,选定商品然后下单. 2.服务器处理订单逻辑,开始正式发起支付流程 3.首先,后台服务器向weixin服务器发起请求,获取一个token. 4.后台服务器拿到token,使用和其他参数加密,再次向weixin服务器发起请求,获取一个预支付prepayid 5.后台服务器将该prepayid返回给app客户端 6.app调用手机

  • 微信公众号可通过现金红包接口发放微信支付现金红包(附开发教程)

    农历新年将至,支付宝红包打了一仗,微信在朋友圈屏蔽了它的分享,但单防守还不行,进攻才是最好的防守.昨日,微信支付现金红包接口正式开放,只需开通微信支付,即可接入现金红包.微信公众号也可以发放现金红包了! 通过现金红包接口,公众号开发者可以策划相关运营活动,向用户发放微信支付现金红包,更好的达到品牌推广及回馈用户的效果. 1.商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,这样的方式,允许商户灵活的应用于各种各样丰富的活动场景 2.领取到红包后,用户的资金直接进入微信零钱,避免繁复的领

  • 微信支付仅能成功调用一次问题的解决方法(Android)

    本人使用Android开发有一段时间了,但是本身没有系统学,而且多年专注服务端开发,总觉得因为项目需要接触Android移动端开发只是暂时的,所以没有太上心,结果碰到一个大难题折腾了一天,最后被有经验的小伙伴提示了一下才迎刃而解,感觉无地自容的同时,又非常窃喜,毕竟跨过一个一个的坎,就成长了,在这里丢人等换个地方就成牛了也未可知,哈哈.闲言就絮叨到这里,赶紧分享: 微信支付调用接口整体的流程有必要简述一下(目前网上的资料大部分都是适配微信支付旧版的代码,最新的微信支付官方文档中并没有服务端的De

  • Android 高仿微信支付数字键盘功能

    现在很多app的支付.输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便.其效果着实精致. 下面带着大家学习下,如何高仿微信的数字键盘,可以拿来直接用在自身的项目中. 先看下效果图: 1. 自定义布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  • Android高仿微信支付密码输入控件

    像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思路应该这样子. Ⅰ.将要输入密码数量动态通过代码加载出来. Ⅱ.利用Gridview模拟产生一个输入数字键盘,并且按照习惯从屏幕底部弹出来. Ⅲ.对输入数字键盘进行事件监听,将这个输入数字填入到这个密码框中,并且当您输入密码长度一致的时候,进行事件回调. 这个思维导图应该是这样的: 首先,我们要根据需求动态加

随机推荐