首页 > 作文

Unity3d 微信SDK接入

更新时间:2023-04-08 20:21:36 阅读: 评论:0

微信支付 Android和IOS 接入

微信官方文档
支付业务流程:/d/file/titlepic/app.php /> 微信SDK和Demo下载地址:/d/file/titlepic/app.php 篇
微信支付集成官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html
1、获取微信支付的APPID。
商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID,并开通微信支付功能。
2、创建Eclip工程。
如果不太了解U3D和Android交互的可以参考以下链接:https://blog.csdn.net/wangningzk123/article/details/107158253
从官网上下载的Demo,导入Eclip中

在自己的Eclip工程中导入libammsdk.jar包,创建xxx.wxapi包名,复制WXPayEntryActivity.java文件到xxx.wxapi包名下,如你的bundleID是com.example.game就要创建com.example.game.wxapi。然后修改WXPayEntryActivity.java的onResp方法。

public void onResp(BaResp resp) {Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) //如果是微信支付        {            if(resp.errCode==0)//支付成功            {                  }            el if(resp.errCode==-2)//支付取消            {            }            el//支付失败             {            }            UnityPlayer.UnitySendMessage("Main Camera","WeChatPayResult",  String.valueOf(resp.errCode)); //通知U3D支付结果        }        this.finish();//别忘记最后要将这个页面finish()}

最后在自己的MainActivity中添加如下方法:

/** 微信支付 */    private IWXAPI wxApi;    public void  WeChatPay(String appId,String partnerId,String prepayId,String nonceStr,Str徘徊的爱ing timeStamp,String sign){   wxApi = WXAPIFactory.c千层峰reateWXAPI(this, Constants.APP_ID);        PayReq request = new PayReq();        request.appId = appId;        request.partnerId =partnerId;        request.prepayId= prepayId;        request.packageValue = "Sign=WXPay";        request.nonceStr= nonceStr;        request.timeStamp= timeStamp;        request.sign = sign;//签名方式可以微信支付官方文档        Log.d("Unity",request.checkArgs()+"");//输出验签是否正确        wxApi.ndReq(request);    }

3、Unity中调用微信支付。

IOS篇
微信支付集成官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
1、下载Demo导入WechtSDK1.8.2文件夹下的libWeChatSDK.a、WechatAuthSDK.h、WXApi.h、WXApiObject.h4个文件,导入Control文件夹下的WXApiManager.h、WXApiManager.m2个文件用于支付通知,然后修改WXApiManager.m的resp方法

#pragma mark - WXApiDelegate- (void)onResp:(BaResp *)resp {    if([resp isKindOfClass:[PayResp class]]){        //支付返回结果,实际支付结果需要去微信服务器端查询        NSString *strMsg,*strTitle = [NSString stringWithFormat:@"支付结果"];        NSString *lat; lat = [NSString stringWithFormat:@"%d", resp.errCode];UnitySendMessage("Main Camera","WeChatPayResult", [lat UTF8String]);//通知U3D支付结果        switch (resp.errCode) {            ca WXSuccess:                strMsg = @"支付结果:成功!";                NSL怎么注册163邮箱og(@"支付成功-PaySuccess,retcode = %d", resp.errCode);                break;                            default:                strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];                NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);                break;        }            }el {    }}

2、创建iOSUtilUnity3dBridge.h和iOSUtilUnity3dBridge.mm文件,调用微信支付SDK,如需了解U3D和IOS交互的可参考以下链接:https://blog.csdn.net/wangningzk123/article/details/107359522
参考代码如下:

#import "iOSUtilUnity3dBridge.h"#import "WXApi.h"@implementation iOSUtilUnity3dBridgevoid _weChatPay(char *appid, char *partnerid, char *prepayid, char *noncestr, char *timestamp, char *sign, char 可以为师矣*package){    NSLog(@"Msg ==========_weChatSpend");PayReq *request = [[PayReq alloc] init];request.openID = [NSString stringWithUTF8String: appid];request.partnerId = [NSString stringWithUTF8String: partnerid];request.prepayId = [NSString stringWithUTF8String: prepayid];request.nonceStr = [NSString stringWithUTF8String: noncestr];//NSMutableString *stamp = [[NSString stringWithUTF8String: timestamp] mutableCopy];request.timeStamp = [[NSString stringWithUTF8String: timestamp] intValue];//stamp.intValue;request.package = [NSString stringWithUTF8String: package];request.sign = [NSString stringWithUTF8String:sign];[WXApi ndReq:request];}@end

编写C#代码调用该方法

[DllImport("__Internal")]private static extern void _weChatPay(string appid, string partnerId, string prepayId, string nonceStr, string timeStamp, string sign, string package);   //微信支付public static void WechatPay(string appId, string partnerId, string prepayId, string nonceStr, string timeStamp, string sign, string package){    _weChatPay(appId, partnerId, prepayId, nonceStr, timeStamp, sign, package);}

3、 在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序 id(如下图所示)。

4、在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下图所示)。

5、在 XCode 工程的 Build Phas -> Link Binary With Libraries 中点击下面的 + 号,添加类库
Security.framework、CoreTelephony.framework、SystemConfiguration.framework、libz.dylib、钻研libsqlite3.0.dylib、libc++.dylib。

6、Unity中调用微信支付。

本文地址:https://blog.csdn.net/wangningzk123/article/details/107378537

本文发布于:2023-04-08 20:21:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/6fa294ae381eb7e0965200623af44a49.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Unity3d 微信SDK接入.doc

本文 PDF 下载地址:Unity3d 微信SDK接入.pdf

标签:自己的   工程   文档   文件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图