微信支付如何使用怎么用 使用微信支付如何使用要注意什么

微信JSAPI支付操作需要注意的细节
作者:huangenai
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了微信JSAPI支付中所遇到的那些坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
首先介绍一下我在调用微信支付接口使用的是 weixin.senparc SDK,非常方便好用开源的一个微信开发SDK。
weixin.senparc SDK 官网:
先去下载下来Senparc.Weixin SDK。
在调起支付接口之前,需要先要调用统一下单接口,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再在APP里面调起支付。
&微信 JsApi支付 在这个目录下 Senparc.Weixin.MP.Sample.Controllers 找到JsApi支付。
public ActionResult JsApi(string code, string state)
if (string.IsNullOrEmpty(code))
return Content("您拒绝了授权!");
if (!state.Contains("|"))
//这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下
//实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
return Content("验证失败!请从正规途径进入!1001");
//获取产品信息
var stateData = state.Split('|');
int productId = 0;
ProductModel product =
if (int.TryParse(stateData[0], out productId))
int hc = 0;
if (int.TryParse(stateData[1], out hc))
var products = ProductModel.GetFakeProductList();
product = products.FirstOrDefault(z =& z.Id == productId);
if (product == null || product.GetHashCode() != hc)
return Content("商品信息不存在,或非法进入!1002");
ViewData["product"] =
//通过,用code换取access_token
var openIdResult = OAuthApi.GetAccessToken(TenPayV3Info.AppId, TenPayV3Info.AppSecret, code);
if (openIdResult.errcode != ReturnCode.请求成功)
return Content("错误:" + openIdResult.errmsg);
string sp_billno = Request["order_no"];
if (string.IsNullOrEmpty(sp_billno))
//生成订单10位序列号,此处用时间和随机数生成,商户根据自己调整,保证唯一
sp_billno = string.Format("{0}{1}{2}", TenPayV3Info.MchId, DateTime.Now.ToString("yyyyMMdd"),
TenPayV3Util.BuildRandomStr(10));
sp_billno = Request["order_no"];
var timeStamp = TenPayV3Util.GetTimestamp();
var nonceStr = TenPayV3Util.GetNoncestr();
var body = product == null ? "test" : product.N
var price = product == null ? 100 : product.Price * 100;
var xmlDataInfo = new TenPayV3UnifiedorderRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, body, sp_billno, price, Request.UserHostAddress, TenPayV3Info.TenPayV3Notify, TenPayV3Type.JSAPI, openIdResult.openid, TenPayV3Info.Key, nonceStr);
var result = TenPayV3.Unifiedorder(xmlDataInfo);//调用统一订单接口
//JsSdkUiPackage jsPackage = new JsSdkUiPackage(TenPayV3Info.AppId, timeStamp, nonceStr,);
var package = string.Format("prepay_id={0}", result.prepay_id);
ViewData["appId"] = TenPayV3Info.AppId;
ViewData["timeStamp"] = timeS
ViewData["nonceStr"] = nonceS
ViewData["package"] =
ViewData["paySign"] = TenPayV3.GetJsPaySign(TenPayV3Info.AppId, timeStamp, nonceStr, package, TenPayV3Info.Key);
return View();
catch (Exception ex)
var msg = ex.M
msg += "&br&" + ex.StackT
msg += "&br&==Source==&br&" + ex.S
if (ex.InnerException != null)
msg += "&br&===InnerException===&br&" + ex.InnerException.M
return Content(msg);
先在微信服务后台生成预支付交易单,获得预支付订单号。
先说说在统一下单这里遇到的坑。&
1.在统一下单的时候解析返回结果,一直出现以下问题:您没有JSAPI支付权限
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[您没有JSAPI支付权限]]&&/return_msg&
1)先看看你的公众号微信支付设置是否正确。
关于如何配置微信支付:可以参考这个
2)检查你的授权目录是否正确,格式要这样,后面记得别漏了一个/&& 例如:/u/
3)检查需要传过去的账户参数,上公众号还有商户号检查你的账户参数是否正确。我在开发当中就出现,微信公众号商户号,appid 是分别不同两个公众号的,坑啊,找了好久,觉得不对劲,原来是给的配置参数密钥不对。
&这里详细说一下对应的参数:
MCHID:商户号(必须配置,开户邮件中可查看),商户申请微信支付后,由微信支付分配的商户收款账号。
APPID:微信开放平台审核通过的应用APPID,appid是微信公众账号或开放平台APP的唯一标识,在公众平台申请公众账号或者在开放平台申请APP账号后,微信会自动分配对应的appid用于标识该应用。可在微信公众平台--&开发者中心查看,商户的微信支付审核通过邮件中也会包含该字段值.
KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置),交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。也可按一下路径设置:微信商户平台(pay.)--&账户设置--&API安全--&密钥设置.
APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置)
&2.在统一下单,解析返回来的结果我出现了商户号mch_id与appid不匹配这个问题
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[商户号mch_id与appid不匹配]]&&/return_msg&
原因是我拿到的商户号不是这个公众号的。一定要检查是不是这个公众号的商户号。
&3.在统一下单,解析返回来的结果出现 appid and openid not match,appid和openid不匹配。
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[appid and openid not match]]&&/return_msg&
原因是我这个用户的openid 不是这个公众号的&
4.在统一下单,解析返回来的结果出现 CDATA[openid is invalid],openid无效
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[openid is invalid]]&&/return_msg&
原因是,传过去不是有效的opendid。不小心看错了,把用户id 当做openid传过去了。
当统一下单成功,会返回以下格式的参数
&return_code&&![CDATA[SUCCESS]]&&/return_code&
&return_msg&&![CDATA[OK]]&&/return_msg&
&appid&&![CDATA[wx0ec43b]]&&/appid&
&mch_id&&![CDATA[]]&&/mch_id&
&nonce_str&&![CDATA[IITRi8Iabbblz1Jc]]&&/nonce_str&
&sign&&![CDATA[EB8ED0CED72F]]&&/sign&
&result_code&&![CDATA[SUCCESS]]&&/result_code&
&prepay_id&&![CDATA[wx507cbf6ffd8b]]&&/prepay_id&
&trade_type&&![CDATA[APP]]&&/trade_type&
解析获得预支付单号:
string prepayId = res.Element("xml").Element("prepay_id").V //获取预支付订单号
给页面对应地参数
ViewData["appId"] = TenPayV3Info.AppId;
ViewData["timeStamp"] = timeS
ViewData["nonceStr"] = nonceS
ViewData["package"] =
ViewData["paySign"] = TenPayV3.GetJsPaySign(TenPayV3Info.AppId, timeStamp, nonceStr, package, TenPayV3Info.Key);
静态页面js调用:
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {//支付成功
//支付失败
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具使用微信支付时要注意什么
微信支付的正确使用方法和注意事项 教你如何看住你的微信钱包
来源:&&编辑:百度百科 &&时间: 19:24:35
  微信的普及和大范围的使用,也把微信支付这种新型的移动支付手段的作用发挥到了极致。有很多习惯于使用微信支付,打开微信&钱包&付款&收营员就能够使用扫码枪进行扫码收款。看起来十分便捷,但是有相当一部分人却忽略了一个细节,反而被不法份子借此利用,盗取钱财。今天我们就来看一下如何才能锁住我们的微信钱包。
  市民:出门不带钱,&微支付&轻松搞定
  8小时以外,90后的刘燕喜欢到咖啡店坐坐,以前出门总要带着钱包,现在基本不拿了,&消费之后,只要拿出手机,对着二维码一扫,按指定金额付款,还能获得一些折扣。&刘燕深有感触地说。
  &如今我出门几乎不带现金,不只是逛商场,就算到小店买一杯奶茶,都可以通过微信支付。&玉林师院大二学生小文告诉记者,和同学出去吃饭、看电影、到超市购物,结算时都能用微信或支付宝转账,非常方便。
  这种便捷的支付方式,受到了越来越多市民尤其是年轻人的青睐。日前,宁小姐好友结婚,婚礼当天公司临时要加班,经同事提醒她通过微信转红包(份子钱),同时送上祝福语。宁小姐告诉记者,现在很多人用手机转账红包,人没到但心意到了。
  商家:大商场小店铺均可&微支付&
  &老板,身上带的现金不够,可以微信转账不?&在文化广场附近一家理发店,陈小姐烫发要付300多元,她选择微信支付结账。&不能刷卡或者网络转账很不方便,以前顾客要去附近的提款机取钱,特别麻烦。现在只要有手机,就能轻松付款。&理发店老板说。
  支持刷卡、支付宝、微信付款等,如今很多商店贴出了这样的温馨提示。人民路一家服装店在柜台处放了一个牌子,上面有支付宝、微信等图章,店主告诉记者,之前店里已开通刷卡的方式,近期又开通了支付宝、微信等付款方式。
  &现在许多人出门不喜欢带太多现金,为了方便顾客,店铺开通了各种支付方式,供顾客选择。&一商家介绍,一些顾客带着银行卡或者手机出来闲逛,看到合适的也会购买,之前没有开通刷卡和网络转账,错过了不少生意。如今支付方式多样化了,生意比以前好了很多。
  微信支付的正确使用方式
  1.手机登录微信,点击右上角的功能按钮,弹出功能选项单,点击我的银行卡,进入银行卡页面。
  2.在填写银行卡页面,我们可以看到所添加银行卡的类型,填写银行卡的有效期,姓名,身份证号码,及手机号码,自动跳到验证手机号页面。
  3.在验证手机号页面,自动识别手机验证码,选择下一步,进入设置支付密码页面
  4.在设置支付密码页面,设置支付密码,自动进入第二次输入密码页面。
  5.设置好添加的银行卡后,你的微信就绑定了银行卡,那么以后涉及到的微信支付将从这张卡来扣款。这就是微信支付。
微信红包吉利数字大全,不同微信红包金额寓意。随着微信红包融入我们的生活,发红包送节日祝福也越来越流行了。不同的数字代...
总有些人,安然而来,静静守候,不离不弃;也有些人,浓烈如酒,疯狂似醉,却是醒来无处觅;无数的相遇,无数的别离,愿你来...
最穷的时候到了,是朋友的给我发5元,喜欢我的人就发20,爱我的人就发14元,自认为是好人的发52元,最爱我的人就发99元,不愿...
今天是大年初二了,不知道昨天你家饺子里包硬币了吗,你吃到了几个呢,为什么要在饺子里面包硬币,有什么说法吗?的传统习俗...
白羊男的爱情是热情的,是火热的,是让你感受都无尽幸福的,而且白羊男有很强烈的占有欲,一定他爱上了你,你是一定会感受的...
白羊座男人思想活跃,热情似火,周身洋溢着不竭的创造力。白羊男喜欢一个女人的时候会想尽一切办法的去呵护帮助喜欢的女人,...
春晚小品《真情永驻》最后响起的歌曲是什么?2017年的央视春晚迎来许多熟悉面孔,其中,孙涛、闫学晶、刘仪伟表演的小品《真...
电影《西游伏妖篇》的预售票房是多少,累计总票房预测多少亿能保底俨然成为了新春佳节大家热议的话题的质疑,接下来快跟尚之...
电影《大闹天竺》片方预测能有多少让大家十分关心,早前有网友根据王宝强离婚案事件分析,《大闹天竺》票房预测能达30亿,但...
靳东为何缺席2017年央视春晚?2015年一部《伪装者》让靳东、胡歌、王凯组成的&明家三兄弟&形象深入人心,近日,2017年央视...
2017辽宁卫视春晚节目单完整版大曝光!一年一度的春节即将来临,辽宁卫视春节联欢晚会提前在26日晚为观众拜年,这次辽宁春晚...
王宝强执导的电影《大闹天竺》即将在大年初一上映,备受网友们的期待。但是令网友好奇的是电影《大闹天竺》讲了什么故事,背...
电影《西游伏妖篇》将于大年初一上映,单是周星驰和徐克这个黄金组合就万众瞩目了,而高颜值的小鲜肉演员阵容更是令影迷们期...
《西游伏妖篇》的特效在电影上映前就备受网友关注,那么《西游伏妖篇》真的没有特效吗,物理特效又是什么鬼呢?有网友吐槽《...
凡注明来源尚之潮网,转载务请必注明来源作者及连接,否则追究法律责任!
Copyright SHANGC, Inc.All Rights Reserved. 尚之潮网-让娱乐无处不在 让时尚与众不同微信和支付宝支付-看我的,用我的就够了 - 简书
微信和支付宝支付-看我的,用我的就够了
1、之前写了一篇,然后有需求说也弄一个微信支付的,block回调,其实微信支付的API提供挺好的,只有一个代理方法处理支付结果,不像支付宝有两种回调,当然,使用block回调简单很多,所以我也单独封装了
此处就不开篇讲解了,大家需要的话可以去我的gitHub上clone
2、还有提出要整合支付宝和微信,这个提议不错,因为集成支付功能的app一般都有支付宝和微信,既然两种都需要,那么统一管理岂不是很方便!所以本篇主要讲解统一管理的工具封装。
二、支付宝和微信API分析
作者在此对比了支付宝和微信的支付API,分析一下它们接口的异同点:
(1)支付宝是不需要在didFinishLaunchingWithOptions 中注册,而微信则需要调用registerApp 注册
(2)支付宝有web回调,而微信没有,当然这个对整合没影响(因为最终都要统一成一个回调)
(3)支付宝发起支付是传入订单信息(字符串类型),而微信则传入一个BaseReq 类或者其子类(支付的是PayReq 类),此时根据这点差异性可以通过传入id 类型,然后内部做判断,进行跳转不同的支付方式,来看看他们的接口
支付宝发起支付
@param orderStr
@param schemeStr
调用支付的app注册在info.plist中的scheme
@param completionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionB
微信发起支付
/*! @brief 发送请求到微信,等待微信返回onResp
函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
SendAuthReq、SendMessageToWXReq、PayReq等。
@param req 具体的发送请求,在调用函数后,请自己释放。
@return 成功返回YES,失败返回NO。
+(BOOL) sendReq:(BaseReq)
(4)支付宝发起支付不单单传入订单信息,还需要传入appSchemes(就是在Info - URL Types 中配置的 App Schemes),而微信 发起支付只需要传入订单信息,它的appSchemes 在 `didFinishLaunchingWithOptions` 注册的时候已经传入了,因此可以考虑 我也在`didFinishLaunchingWithOptions` 中给支付宝绑定一个 appSchemes ,类似微信,然后在发起支付的时候就不需要传入,只需要在内部获取就行,当然,由于Url Scheme 是存储在`Info.plist` 文件中,因此可以用代码获取,就不需要调用者传入了,只需要按照本工具的规定就搞定
(5)支付宝的支付返回状态不是以枚举类型返回,是用过回调中返回的字典中的 resultStatus 字段,而微信是通过枚举返回,此时可以统一为枚举,可参考微信
![支付宝支付返回状态码(截图来自支付宝官方文档)](http://upload-images.jianshu.io/upload_images/bca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![微信支付返回状态码(截图来自微信官方文档)](http://upload-images.jianshu.io/upload_images/1085031-fdbdb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(6)支付宝每一个状态码都对应一个状态信息,而微信则只有错误的时候(errCode = -1)才有对应状态信息,可参考支付宝,手动给微信添加返回状态信息
- **1、支付宝支付集成 (三个步骤)**
(1)由于支付宝不支持Pod,那么[下载最新的SDK](https://doc./doc2/detail.htm?treeId=54&articleId=104509&docType=1),拖到项目中
![只有两个资源文件](http://upload-images.jianshu.io/upload_images/ba9f3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2)按照支付宝官方文档,导入所需库
![导入所需库](http://upload-images.jianshu.io/upload_images/ceb1b829c6646.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(3)配置 `Info.plist` 中的 `Url Types` 添加支付宝跳转 Url Scheme
![添加Url Scheme](http://upload-images.jianshu.io/upload_images/ba0ffc1931385.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- **2、微信支付集成(六个步骤)**
(1)同样微信也不支持Pod,[下载最新的SDK](https://pay./wiki/doc/api/app/app.php?chapter=11_1),拖到项目中
![有四个文件](http://upload-images.jianshu.io/upload_images/db84ae06b2075fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2)按照微信官方文档,导入所需库
![文档比较旧,截图来自官方Demo](http://upload-images.jianshu.io/upload_images/1085031-dab2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
** *此时你运行官方Demo,发现没任何问题,但是自己项目中就可能出现下图的情况,下一步解决**
![如果出现这种错误,请看下一步](http://upload-images.jianshu.io/upload_images/df925ecaf06d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(3)还是再看看官方文档,虽然旧点,你会发现,其实是少了一个libc++.tbd 库,至于CFNetwork.framework 实测不添加也是没问题的,官方Demo也没添加,当然最好也添加进去
![少了一个libc++.tbd 库](http://upload-images.jianshu.io/upload_images/b8c6b8baec4548.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
** *此时command + b 发现successfully 了,但当你高高兴兴地运行的时候,你会发现,程序崩溃了,提示如下,断点调试的时候发现其实就是 调用微信的`registerApp`方法出现的 **
![崩溃原因](http://upload-images.jianshu.io/upload_images/df5f04de3faccd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(4)在 `build settings` 下面的 `Other Linker Flags` 添加 `-ObjC` ,如果依然不行,改为 `-all_load`
此时应该没问题了
![添加-all_load](http://upload-images.jianshu.io/upload_images/8755cadb0e2ba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(5)配置 `Info.plist` 中的 `Url Types` 添加微信跳转 Url Scheme,此时就集成完毕了
![添加Url Scheme](http://upload-images.jianshu.io/upload_images/fb409f71964df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(6)当然此时运行应该还有问题,提示少了类 `Expected a type`,其实就是 `WXApiObject.h` 和 `WXApi.h` 少导入了
`UIKit` 框架,因为微信官方Demo中用到了PCH 文件,文件中导入了 `UIKit` 框架,手动添加进去就没问题了
#四、封装 API
&1、单例模式,项目中唯一,方便统一管理
@author gitKong
(instancetype)shareM
&2、处理回调url,需要在AppDelegate中实现
@author gitKong
处理跳转url,回到应用,需要在delegate中实现
(BOOL)fl_handleUrl:(NSURL *)
&3、注册app,需要在 didFinishLaunchingWithOptions 中调用,绑定URL Scheme
@author gitKong
注册App,需要在 didFinishLaunchingWithOptions 中调用
(void)fl_registerA
&4、发起支付,传入订单参数类型是id,传入如果是字符串,则对应是跳转支付宝支付;如果传入PayReq 对象,这跳转微信支付,注意,不能传入空字符串或者nil,内部有对应断言;统一了回调,不管是支付宝的wap 还是 app,或者是微信支付,都是通过这个block回调,回调状态码都有对应的状态信息
@author gitKong
@param orderMessage 传入订单信息,如果是字符串,则对应是跳转支付宝支付;如果传入PayReq 对象,这跳转微信支付,注意,不能传入空字符串或者nil
@param callBack
回调,有返回状态信息
(void)fl_payWithOrderMessage:(id)orderMessage callBack:(FLCompleteCallBack)callB
#五、用法(基于SDK集成后)
& **1、在`AppDelegate`处理回调,一般只需要实现后面两个方法即可,为了避免不必要的麻烦,最好三个都写上**
@author gitKong
最老的版本,最好也写上
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [FLPAYMANAGER fl_handleUrl:url];
@author gitKong
iOS 9.0 之前 会调用
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [FLPAYMANAGER fl_handleUrl:url];
@author gitKong
iOS 9.0 以上(包括iOS9.0)
(BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary&NSString *,id& *)options{
return [FLPAYMANAGER fl_handleUrl:url];
&**2、在`didFinishLaunchingWithOptions`中注册 app,内部绑定根据Info中对应的Url Types 绑定 `URL Scheme`**
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 注册app
[FLPAYMANAGER fl_registerApp];
return YES;
&3、**发起支付**
支付宝支付
NSString *orderMessage = @"Demo 中 有 可测试的 订单信息";
[FLPAYMANAGER fl_payWithOrderMessage:orderMessage callBack:^(FLErrCode errCode, NSString *errStr) {
NSLog(@"errCode = %zd,errStr = %@",errCode,errStr);
- 微信支付
//调起微信支付
PayReq* req
= [[PayReq alloc] init];
req.partnerId
= [dict objectForKey:@"partnerid"];
req.prepayId
= [dict objectForKey:@"prepayid"];
req.nonceStr
= [dict objectForKey:@"noncestr"];
req.timeStamp
= stamp.intV
req.package
= [dict objectForKey:@"package"];
= [dict objectForKey:@"sign"];
[FLPAYMANAGER fl_payWithOrderMessage:req callBack:^(FLErrCode errCode, NSString *errStr) {
NSLog(@"errCode = %zd,errStr = %@",errCode,errStr);
#六、此工具的优点
- 1、隔离框架,统一管理,维护方便
- 2、针对支付功能来封装一套API,用法简单,可读性强
- 3、融合支付宝 和 微信 接口的优点,例如完善微信返回状态码对应的状态信息
- 4、对支付宝 和 微信的 回调处理都统一 成一个 block回调
- 5、工具中添加了比较完善的断言
![比较完善的断言,避免不必要的错误](http://upload-images.jianshu.io/upload_images/e74c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#七、注意点:
- 1、`Info.plist` 配置 `Url Types`
的 `Identifier` 必须 保证 和 工具中的对应,默认微信的 `Identifier` 是 `weixin` ,支付宝的 `Identifier` 是 `zhifubao`,可修改
@author gitKong
此处必须保证在Info.plist 中的 URL Types 的 Identifier 对应一致
define FLWECHATURLNAME @"weixin"
define FLALIPAYURLNAME @"zhifubao"
- 2、因为工具中添加了比较完善的断言,配置不完整或者是传参不正确,程序都会不可避免的崩溃
- 3、由于工具中都耦合可支付宝SDK 以及 微信SDK,如果项目中只需要用到单个支付,此时就不适用了,当然,独立的也有:
[支付宝支付——统一wap和支付宝钱包回调](/gitkong/FLAlipayManager)
[微信支付-block回调](/gitkong/FLWXPayManager)
- 1、内部实现代码都比较简单,这里就不作详细分析,Demo中都有相对于的注释,**[gitHub 地址](/gitkong/FLPayManager)** 在此,给个 star 支持支持~
- 2、封装的思路以及分析都已经详细说明了,如果大家有什么疑惑或者新的想法都可以留言给我,我都会一一回复!
- 3、**欢迎大家关注我,喜欢就给个like,打赏也会厚脸无耻地收下,我会随时更新原创干货~**
一个热爱生活的程序员
喜欢敲代码,也喜欢运动
欢迎关注我微信公众号:原创技术分享
只做对的,不做多余的
https://gitkong.github.io
所有文章均为原创,已申请维权!
尊重原创,需要转载请先简信我,谢谢!
实现支付宝支付的准备工作: 1.向支付宝签约,成为支付宝的商户 签约完成后,支付宝会提供一些必要的数据给我们 商户ID:partner 账号ID:seller 即支付宝账号 签约需要营业执照 2.获取支付相关的 私钥和密钥,这两个东西为了数据安全 上面这几个东西只要签约成功...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
一、引述 1、上一篇文章我们讲的是规格属性选择;通常情况下,在电商平台购物的下一步操作就是立即购买或者添加到购物车了,今天,我们先讲立即购买,那么,肯定涉及到的就是支付。如今这个移动支付火爆的年代,如果你的APP不能够实现移动支付,那是不是已经被时代潮流远远的甩在了后面。 ...
支付宝简介文档 (适用于ydm-java接口与后台,如有误入,但愿也能给您带来帮助) 此文档写于2017年3月,只能说明此时该文档适用。使用前请查看以下接口支付宝是否提供。 App支付产品 批量付款到支付宝账户 (链接如有发生变化,请在官方文档中寻找此产品,一般情况下,产品...
文/张牧歌 微博搜索张牧歌 人人都有一颗创业的心,都想实现自己的什么财务自由,精神自由啦,但是创业确实非常的艰难,不仅仅是需要技巧,还需要有一定的对市场判断的能力,对于大多数草根而言,错过了淘宝,错过了微博,甚至连微信这些红利都错过了,随着时间的流失和岁月的增长,越来越多的...
前几天和老公一起看了何冰主演的十二公民,由于自己是公安院校毕业的学生,所以感触颇深!请客观公正的对待每一个犯罪嫌疑人,不要让那万分之一的人收到人生百分之百的灾难。
然而,昨天我去买早点时遇到清洁工人的时候遇到两位态度有些凶的老人家,然后我心里在想,哦,这些清洁工都是这样...
01 我独自在校园的小径上走着,石板在夜色中泛着灰白的光,两旁的花草看不清颜色,空气中弥漫着淡淡的清香,沁人心脾。 我叹了口气,实在无心欣赏这夜色美景,脑袋里全是老妈刚刚电话里的声音:“我把你的地址给男方了,媒人说人家马上就到你学校了!你认真对待听到了没有?要是人家打电话你...
健全人格的培养离不开家庭、学校、社会等方面共同的努力。在这些方面中,家庭教育具有主动性强,更具有可操作性,同时,调整家庭内部因素也是解决人格教育问题的首选切入点。 今天,我们就家庭教育中如何培养儿童健全人格做一个深入探讨。 首先,家长需要的是改变原有的观念,尊重儿童人格: ...
小可爱(?o . o?)是谁 对的对的??(ˊωˋ*)??,就是下面这位小仙女_(:з」∠)_ 第一次见她emmm,思修课,妈耶一堆可爱的河南妹子坐在一起(??ω?)?嘿(当然包括我),一起谈人生,谈天说地玩手机(呸,当然是认真听讲啦?)
这个妹子大物特别好,特别好,特别...

我要回帖

更多关于 微信使用信用卡支付 的文章

 

随机推荐