微信支付接口开发

微信支付接口回调|iOS不用官方SDK实现微信和支付宝支付XHPayKit

2019-01-27 13:17:15 热度:438 ℃
[导读]:本文(《iOS不用官方SDK实现微信和支付宝支付XHPayKit》)由来自寿光的合作伙伴投稿,并经由本站(微信免签约支付接口)结合主题:微信支付接口回调,收集整理了众多资料而成。主要记述了支付宝,sdk,移动支付,支付宝支付接口,支付宝sdk,ios支付宝,接口等方面的信息。相信从本文您一定可以获得自己所需要的!

前言

前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK,这种情况下需要自己搞定支付,第一时间考虑到的是使用openshare,但是当下载openshare下来后发现,openshare的支付接口,并不能直接替换官方SDK支付接口,

官方SDK的实现逻辑是后台订单签名完成后,客服端传签名信息及参数给支付SDK,支付SDK生成协议url,然后拉起第三方支付APP,

而openshare的支付接口是直接传拉起支付的协议url地址,将生成协议url地址的操作也交给后台来生成,

这样的话后台需要修改代码,

能否不修改后台代码,弄一个支付接口直接替换官方SDK支付接口,实现无缝对接呢,于是就研究了下微信和支付宝支付时APP间通讯关系,最后封装成.

特性:

1.拥有和官方SDK类似接口,可以直接替换官方SDK支付接口,如果你使用过官方SDK,那么转换为本库你只需花费极短时间.

2.只有10kb大小,不用导入任何依赖库,便可实现微信支付、支付宝支付,如果你想为项目瘦身或由于某种原因,不想使用官方SDK实现支付功能,此库将是一个不错的选择.

3.使用时,不需要配置微信等平台appid等信息,服务端配置就可以了,因为后台签名订单时会返回appid等信息给客户端.

注意:

2.导入此库,并请将 weixin 、 alipay 字段添加到info.plist白名单

使用方法:

//微信支付参数,下面7个参数,由后台签名订单后生成,并返回给客服端(与官方SDK一致)

 //注意:请将下面参数设置为你自己真实订单签名后服务器返回参数,便可进行实际支付

XHPayWxReq *req = [[XHPayWxReq alloc] init];

req.openID = @"";

req.partnerId = @"";

req.prepayId = @"";

req.nonceStr = @"";

req.package = @"";

req.sign = @"";

[[XHPayKit defaultManager] wxpayOrder:req completed:^(NSDictionary *resultDict) {

          NSLog(@"支付结果:\n%@",resultDict);

          NSInteger code = [resultDict[@"errCode"] integerValue];

          if(code == 0){//支付成功

          }

}];

2.支付宝支付

//支付宝订单签名,此签名由后台签名订单后生成,并返回给客户端(与官方SDK一致)

//注意:请将下面值设置为你自己真实订单签名,便可进行实际支付

NSString *orderSign = @"很长的一串支付宝订单签名";

//传入支付宝订单签名 和 自己App URL Scheme,拉起支付宝支付

[[XHPayKit defaultManager] alipayOrder:orderSign fromScheme:@"XHPayKitExample" completed:^(NSDictionary *resultDict) {

    NSLog(@"支付结果:\n%@",resultDict);

    NSInteger status = [resultDict[@"ResultStatus"] integerValue];

    if(status == 9000){//支付成功

    }

}];

3.在Appdelegate中添加以下代码 - 处理第三方支付跳回商户app携带的支付结果Url

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0

/** iOS9及以后 */

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options

{

    BOOL result = [[XHPayKit defaultManager] handleOpenURL:url];

    if (!result) {//这里处理其他SDK(例如QQ登录,微博登录等)

    }

    return result;

}

#endif

/** iOS9以下 */

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

    BOOL result = [[XHPayKit defaultManager] handleOpenURL:url];

    if (!result) {//这里处理其他SDK(例如QQ登录,微博登录等)

    }

    return result;

}

其它接口:

/**

 @return 已安装YES,未安装NO

 */

+(BOOL)isWxAppInstalled;

/**

 是否安装支付宝

 @return 已安装YES,未安装NO

 */

+(BOOL)isAliAppInstalled;

支付结果resultDict释义:

{

    "errCode":0,

    "errStr":"成功"

}

//以下状态码含义与官方SDK一致

errCode = 0,成功

errCode = -1,普通错误类型

errCode = -3,发送失败

errCode = -4,授权失败 

支付宝

{

    "result":"",

    "resultStatus":"9000",

    "memo":"支付成功"

}

//以下状态码含义与官方SDK一致

resultStatus = 9000,支付成功

resultStatus = 8000,正在处理中,支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态

resultStatus = 4000,支付失败

resultStatus = 5000,重复请求

resultStatus = 6001,用户中途取消

resultStatus = 6002,网络连接出错

resultStatus = 6004,支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态

小结:

XHPayKit的实现非常简单,感兴趣的同学可以下载下来研究下支付时APP间通讯.

拓展阅读

微信支付图片 修改微信支付截图以假乱真 梅苑派出所抓获4名违法嫌疑人:http://www.gzcxwz.cn/dev/115.html

微信企业号开发之回调模式的接口开发:https://www.cnblogs.com/heroine/p/6591441.html

相关问答

问:android 微信支付回调接口怎么写

答:之前搞微信支付一直不能够回调支付结果的回调页面,现在来说一下怎么成功回调页面
参照文档:调起支付的代码:
[java] view plain copy
private void sendPayReq(String appid, String partnerid, String prepayid, String packageValue, String noncestr, int timestamp, String sign) {

//微信注册APPID
IWXAPI api = WXAPIFactory.createWXAPI(this,null);
api.registerApp(appid);
PayReq request = new PayReq();
request.appId = appid;
request.partnerId = partnerid;
request.prepayId = prep

问:wap 微信支付,公众平台怎么配置,回调接口,谢谢管理

答:回调肯定是没了,jsapi用着坑太多:
1. 只能服务号里跳转去支付,订阅号里支付会提示不能跨号支付,支付又成了专号专用的了,文档里没看到,结果最后发短信给用户,加微信群,然后发链接给支付
2. 有的用户获取不到openid,空的
3. 支付成功页面必须用户点击完成,关闭微信弹出成功提示页面,才有js通知支付状态
4. 各种key有时效2小时,偏偏还有每天限量取的坑
5. 我每天要跑程序去对比订单,查询订单是不是支付成功,让我的数据跟微信数据同步
6. 订单号在微信公众号流水里查不到,要到商户后台去查,还不是财付通的商户后台
7. 财付通的这里面的订单号还有好几个,财付通的我反正是不想碰。

问:微信支付回调接口 如何判断是支付还是退款

答:各项设置应该都正常,因为支付已经ok了,在公众号后台能看到支付成功的流水。 调的js接口,只接到了js返回的get_brand_wcpay_request:ok,设置的回调通知地址毫无反应(用日志调试)。

问:微信支付接口回调方法中能否执行极光推送

答:1,微信支付的过程是商家发起支付请求――微信支付后台返回对应的二维码――用户扫描付款――后台确定付款成功――发起回调通知商家――商家系统返回应答; 2,当商家系统未返回应答时,系统就会多次发起回调,以免商家的系统无法获得交易结果;

问:jsapi微信支付 回调怎么写

答:各项设置应该都正常,因为支付已经ok了,在公众号后台能看到支付成功的流水。 调的js接口,只接到了js返回的get_brand_wcpay_request:ok,设置的回调通知地址毫无反应(用日志调试)。

评论

来自 般若 的客户 评论于 2019-01-31 16:07:04
你这个好好查下api啊
微信支付分好几种呢,公众号里的,网页授权的,还有第三方支付,每个接口都不一样的,你不是弄混了
来自 Katze 的客户 评论于 2019-01-27 15:34:24
只有支付有回调接口,退款没有,退款有查询接口
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。