- npm i react-native-sf-wx-pay
- react-native link react-native-sf-wx-pay
- 1.0
- 导入库集成SDK
- 2.0
- 需要添加的系统库
- SystemConfiguration.framework
- libz.tbd
- libsqlite3.0.tbd
- CoreTelephony.framework
- QuartzCore.framework
- 3.0
- 设置URL Scheme
- 4.0 在AppDelegate 添加
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// 处理微信的支付结果
[WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
return YES;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
[WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
return YES;
}
//微信回调,有支付结果的时候会回调这个方法
- (void)onResp:(BaseResp *)resp
{
// 支付结果回调
if([resp isKindOfClass:[PayResp class]]){
if(resp.errCode==0){
resp.errStr=@" ";
}
NSDictionary * dic = [[NSDictionary alloc]initWithObjectsAndKeys:[NSString stringWithFormat:@"%d",resp.errCode],@"respCode",resp.errStr,@"respStr",nil];
NSNotification *notification = [NSNotification notificationWithName:@"PAY_WECHAT" object:nil userInfo:dic];
[[NSNotificationCenter defaultCenter] postNotification:notification];
}
}
- 5.0 在react 添加监听支付监听
import { NativeAppEventEmitter } from 'react-native';
NativeAppEventEmitter.addListener(
'WeChatResp',
(content) => {
//数据内容
}
}
);
this.listener && this.listener.remove();
回调中errCode值列表:
名称 描述 解决方案
0 成功 展示成功页面
-1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
-2 用户取消 无需处理。发生场景:用户不支付了,点击取消,返回APP。
- 1.0
- 在SDK中找到jar包,导入,或直接添加依赖
- compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2' // 微信支付
- 2.0
- 配置清单文件
<!--权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 微信支付 -->
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"/>
parameter | type | required | description | default |
---|---|---|---|---|
appid | string | yes | 微信支付id | null |
partnerId | string | yes | 合作id | null |
prepayId | string | yes | 订单id | null |
nonceStr | string | yes | 随机串 | null |
timeStamp | string | yes | 时间戳 | null |
sign | string | yes | 订单标签 | null |
Methods | Params | Param Types | description | Example |
---|---|---|---|---|
registerApp | string | string | 微信注册appid | SFWxpay.registerApp('') |
Pay | dictionary | dictionary | 需要传递的参数 | SFWxpay.Pay(‘填写多个字符') |