费改后融合支付(微信、银联微信支付宝三合一、银联、京东等)还有竞争力吗?

当前位置 & &
& 支付宝、微信大战五一:银联尴尬了
支付宝、微信大战五一:银联尴尬了
22:47:29&&出处:&&作者:温晓桦
编辑:上方文Q &&)
让小伙伴们也看看:
阅读更多:
好文共享:
文章观点支持
当前平均分:0(0 次打分)
[05-02][05-02][05-02][05-02][05-02][05-01][05-01][05-01][05-01][04-30]
登录驱动之家
没有帐号?
用合作网站帐户直接登录4011人阅读
Android实战(29)
Demo一直返回-1
先去官网下载demo运行,第一次可以支付成功,以后就一直返回-1
如果是以客户端的官网demo进行测试的话,若一直返回-1,可采用如下方式处理:
删除微信缓冲数据
按如下步骤:设置-&应用程序管理器-&微信-&清除数据
使用demo里的debug.keystore来测试
功能修改步骤:preferences-&android-&build-&custom debug keystore-&browse。
集成之后总是返回-1
可能产生问题的地方:包名不一致等其它原因(按照集成申请步骤来,这个应该很少发生)
Demo中的订单模拟
其实微信支付的大部分工作是需要服务器端进行完成,微信支付的demo中,帮我们模拟了通过服务器生成订单,并返回prepayid的过程,然后demo中会拿着这些微信给我们模拟好的数据去进行支付,每次测试会向”微信测试”支付0.01元。demo中毕竟是模拟的,我们自己的集成一定是实实在在的,不过这里我并不会涉及到太多关于服务器端需要做什么
客户端快速集成
微信支付的demo比较冗余,我们把支付需要的东西单独摘出来,画箭头的文件可以copy到自己的工程中,根据实际业务或者代码设计进行修改。另外需要注意如下几点:
AndroidManifest.xml中package名字和项目包名一样;
将WXPayEntryActivity.java放在package.wxapi/下面
AndroidManifest.xml中添加.wxapi.WXPayEntryActivity(不添加,支付成功后无法跳转到相应的通知Activity界面);
集成关键步骤
从实际开发的角度来看PayActivity中需要添加的三个必备参数
/*****************************************************************
* 微信支付需要的参数解释: APP_ID,商户号,API密钥
*****************************************************************/
public static final String APP_ID = "xxxxxxxxxxxxxx";
public static final String MCH_ID = "yyyyyyyyyyyyyy";
public static final String API_KEY = "zzzzzzzzzzzzz";
IWXAPI msgA
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
msgApi = WXAPIFactory.createWXAPI(this.getApplicationContext(), null);
点击微信支付-&检测微信是否安装
未安装toast提示
已安装-&根据需要兑换或者支付的产品id去服务器请求创建订单-&创建订单成功-&根据服务器返回的prepayid调用微信客户端进行微信支付-&微信回调(无论成功、失败或者取消)-&返回支付页面-&去服务器校验订单-&成功则根据校验结果进行相应业务跳转,校验异常可以强制用户进入订单列表页面进行再次比对校验(这个过程需要本地保存一下校验异常的订单,不过具体怎么处理校验异常可以自行制定策略)
一般校验订单是发生在微信客户端回调成功之后再去校验,但有一种情况也需要去校验,就是用户不是通过在微信中操作返回支付页面,而是通过home按键返回,这样支付页面就收不到微信的回调结果,即使已经支付成功,所以我们需要在支付页面回到前台的某个控制时机去再次校验一下订单
另外微信支付客户端的回调是在WXPayEntryActivity中完成的,这里可以自己再进一步封装处理
贴一些相关代码:
* 微信支付使用
private String genNonceStr() {
Random random = new Random();
return MD5.getMessageDigest(String.valueOf(random.nextInt(10000)).getBytes());
* 微信安装检测
private boolean checkApkExist() {
if (msgApi.isWXAppInstalled()) {
return true;
return false;
* 微信支付:调用微信支付
* prepayId 支付id
private void weiXinPay(String prepayId) {
PayReq req = new PayReq();
req.appId = APP_ID;
req.partnerId = MCH_ID;
req.prepayId = prepayId;
req.packageValue = "Sign=WXPay";
req.nonceStr = genNonceStr();
req.timeStamp = String.valueOf(System.currentTimeMillis() / 1000);
StringBuilder sb = new StringBuilder();
sb.append("appid=");
sb.append(req.appId);
sb.append("&noncestr=");
sb.append(req.nonceStr);
sb.append("&package=");
sb.append(req.packageValue);
sb.append("&partnerid=");
sb.append(req.partnerId);
sb.append("&prepayid=");
sb.append(req.prepayId);
sb.append("&timestamp=");
sb.append(req.timeStamp);
sb.append("&key=");
sb.append(API_KEY);
String appSign = MD5.getMessageDigest(sb.toString().getBytes()).toUpperCase();
req.sign = appS
msgApi.registerApp(APP_ID);
msgApi.sendReq(req);
支付宝支付
其实支付宝支付的集成更加简单
支付宝支付的demo上来是不能运行的,因为你缺少需要的参数,这里列举的是客户端需要的
/*****************************************************************
* 支付宝支付需要的参数解释: 商户PID、商户收款账号、商户私钥
*****************************************************************/
public static final String PARTNER = "xxxxxxxxxxxxx";
public static final String SELLER = "yyyyyyyyyyy";
public static final String RSA_PRIVATE = "zzzzzzzzz";
配置文件中不要忘记加入:(否则当手机没有安装支付宝客户端时无法调用支付成功)
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" &
贴一下相关代码,较demo有些许改动:
需要注意的地方:
私钥一定配置正确,我看有好多小伙伴会在sign(orderInfo)时获得的sign为null,最终导致做URL编码的时候报空指针,我也碰到过,就是服务器那边给的RSA_PRIVATE有问题。公钥客户端用不着
微信支付只需要传递一个prepayid,而支付宝支付需要穿三个参数,一个是订单号,一个是价格,一个是notify_url
支付宝支付创建订单以及订单校验的过程与微信支付类似,因为同在一个地方,要控制好相应的逻辑
注意一下price的单位,分和元不要搞错了
* call alipay sdk pay. 调用支付宝SDK支付
public void alipay(String tradeNo, String price, String notify_url) {
String orderInfo = getOrderInfo(tradeNo, title,
payInfo, price, notify_url);
String sign = sign(orderInfo);
sign = URLEncoder.encode(sign, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
final String payInfo = orderInfo + "&sign=\"" + sign + "\"&" + getSignType();
Runnable payRunnable = new Runnable() {
public void run() {
PayTask alipay = new PayTask(PayActivity.this);
String result = alipay.pay(payInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
ThreadPoolUtils.execute(payRunnable);
* create the order info. 创建支付宝订单信息
public String getOrderInfo(String tradeNo, String subject, String body, String price, String notify_url) {
String orderInfo = "partner=" + "\"" + PARTNER + "\"";
orderInfo += "&seller_id=" + "\"" + SELLER + "\"";
orderInfo += "&out_trade_no=" + "\"" + tradeNo + "\"";
if (!TextUtils.isEmpty(subject)) {
orderInfo += "&subject=" + "\"" + subject + "\"";
if (!TextUtils.isEmpty(body)) {
orderInfo += "&body=" + "\"" + body + "\"";
orderInfo += "&total_fee=" + "\"" + (Integer.parseInt(price) / 100f) + "\"";
orderInfo += "&notify_url=" + "\"" + notify_url + "\"";
orderInfo += "&service=\"mobile.securitypay.pay\"";
orderInfo += "&payment_type=\"1\"";
orderInfo += "&_input_charset=\"utf-8\"";
orderInfo += "&it_b_pay=\"30m\"";
orderInfo += "&return_url=\"\"";
return orderI
* 支付宝支付使用 sign the order info. 对订单信息进行签名
待签名订单信息
public String sign(String content) {
return SignUtils.sign(content, RSA_PRIVATE);
* 支付宝支付使用 get the sign type we use. 获取签名方式
public String getSignType() {
return "sign_type=\"RSA\"";
支付宝支付成功的回调(收到的msg.what为SDK_PAY_FLAG)
* 支付宝支付客户端回调成功
* theLayout
private static void aliSdkPaySuc(Message msg, PayActivity theLayout) {
PayResult payResult = new PayResult((String) msg.obj);
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
if (TextUtils.equals(resultStatus, "9000")) {
theLayout.payCheck();
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(theLayout, "支付结果确认中",
Toast.LENGTH_SHORT).show();
} else if (TextUtils.equals(resultStatus, "4000")) {
Toast.makeText(theLayout, "支付失败",
Toast.LENGTH_SHORT).show();
} else if(TextUtils.equals(resultStatus, "6001")){
theLayout.payCount("5","");
Toast.makeText(theLayout, "支付取消",
Toast.LENGTH_SHORT).show();
}else if(TextUtils.equals(resultStatus, "6002")){
Toast.makeText(theLayout, "网络连接出错",
Toast.LENGTH_SHORT).show();
theLayout.clickAliPay = false;
关于微信支付和支付宝支付的坑,上面已经介绍很多了,如果还有问题的话,可以参考一下官方的FAQ
集成起来整体感觉支付宝支付要比微信支付容易点
微信支付可以支付虚拟货币,但是支付宝需要走特殊通道开通
银联支付年后再补上,因为商家账户申请的时间好长
移动支付的过程处理需要在逻辑上做到严谨(对各种异常要提前预判),毕竟是跟钱有关的
ll 微信支付客户端返回-1
官方的错误码列表:
这次出现这个问题的原因是服务端签名错误,切记注意(我们这边服务器同学在签名时把partnerid和prepayid搞成了partner_id和prepay_id)
问题发现:通过客户端自己算签名,发现和服务器端给出的不一致,但通过客户端自己计算的签名就可以正常发起支付,遂得出服务端签名错误的结论
结论:如果确定APPID 、包名 、商户API密钥没问题的前提下依然返回-1,就一定是签名错误的锅!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:163900次
积分:2622
积分:2622
排名:第13349名
原创:91篇
评论:102条
(1)(3)(1)(2)(2)(4)(9)(2)(2)(6)(1)(4)(2)(1)(5)(2)(8)(12)(2)(4)(15)(1)(3)云商移动支付全国招商(五通道:微信、支付宝、百度钱包、苏宁易付宝、银联钱包等,京东钱包)
云商移动支付全国招商(五通道:微信、支付宝、百度钱包、苏宁易付宝、银联钱包等,京东钱包)
&&云商支付免费为您提供线上一站式平台(集成微信公众平台、支付宝服务窗、百度直达号、只能生成APP等)和线下收银系统(五通道:微信、支付宝、百度钱包、苏宁易付宝、银联钱包等,京东钱包也正在赶来的路上!)。对!免费提供,无限量使用!线上提供二十几大行业的解决方案;线下流水的0.6%分润全归您!无需代理费,无需加盟费!备注:在技术方面由本公司全面支持!!!
成功案列:餐饮--海底捞、星巴克,清口清汤、华莱士、医疗--广东省妇幼保健院、永辉超市、北京友谊医院,酒店--布丁酒店、桔子酒店、7天连锁酒店、如家酒店集团,快递--顺丰速运等等。
2015你还要坚苦的牢守传统支付吗?怕切机,怕封机,怕没分润,怕追偿……累不累?你若真正了解微信支付宝超乎想像的强大!一定会发现其中巨大的商机和利润!你若选择我,我便与同舟共济;你若选择我,我便全力技术支持;你若选择我,我便与你共创一番事业!
扫码时代已经到来了!你们还在观望吗?!!!
公司官网:
项目咨询电话:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。a 当前位置:
银联拉帮结派对抗微信支付宝 是痴人说梦吗?
&Ivy Bridge o  来源:前瞻网 E1184
微信信支付和支付宝再度迎来新对手,这一次,是在线下拥有众多POS机终端的银联。而且,银联此次正式进军微信和支付宝最擅长的二维码支付。微信支付宝在国内的支付地位,可以说固若金汤,银联此时想与中小支付机构联手,到底能不能撼动微信支付宝&双寡头&市场格局呢?
不过,钱芳CEO李英豪认为,银联二维码支付难以真正普及,因为微信和支付宝已经先入为主,要让用户改变消费习惯会很难。
12月12日,中国银联发布二维码支付标准。此次中国银联发布的中国银联二维码支付标准包括《中国银联二维码支付应用规范》、《中国银联二维码支付安全规范》两个企业标准。
关于具体,银联二维码支付的特点主要有以下几点:
1、使用场景更加广泛:银联二维码支付除了线下覆盖的中小微商户,线上也可使用电子版的二维码扫码支付;
2、在实体银行的基础上发展移动支付业务:银联二维码后台仍然基于实体银行卡账户,因与银行利益高度重合,要好于各家银行单独运营;
3、银联二维码支付一端将主要依靠银联自身的APP以及各大商业银行的手机APP以及中小支付机构推出的APP,另一端将依靠支持银联二维码支付的终端;
4、不需要实体卡:未来人们去ATM机只需要通过扫描二维码就能完成取款或转账即可。
目前,支付市场存在三方模式和四方模式。四方模式即卡组织、发卡机构、商户和收单机构四类参与主体,目前中国银联、Visa、万事达卡等均采用四方模式;而支付宝、微信支付等第三方支付机构直连银行,绕开卡组织进行网络支付,即采取三方模式。
对手强大,银联也不是在打没有准备的帐。专家分析,银联以往在线下POS机积累了海量用户,这些用户未来有望转化为银联二维码用户,而且与Apple Pay、Huawei Pay等需要用户使用相应品牌的手机不一样,银联二维码支付不需要担心用户的手机品牌。这些都是银联的优势。
不过,在微信和支付宝占据移动支付领域近90%市场份额的前提下,银联能不能突破重围呢?这还是很悬的一件事。至少在短期内是不可能的,至于今后如何,就得看看银联怎么玩了。你看,支付宝都狂欢到国外去了,面对这么强大的对手,不使出点真功夫,消费者可不买单啊。
本文来源前瞻网,转载请注明来源!(图片来源互联网,版权归原作者所有)
广告、内容合作请点这里:
前瞻网官方微信
发现趋势,预见未来!
前瞻产业研究院
如何抓准行业的下一个风口?未来5年10年行业趋势如何把握?扫一扫立即关注。
相关阅读RELEVANT
文章评价COMMENT
还可以输入<em class="orange" id="emCmtLen" maxlen="个字
网友评论仅供其表达个人看法,并不表明前瞻网同意其观点或证实其描述。
前瞻产业研究院
Copyright (C)
深圳前瞻资讯股份有限公司 All rights reserved.    增值电信业务经营许可证:

我要回帖

更多关于 支付宝微信商家手续费 的文章

 

随机推荐