unity探索者之微信支付,非第三方插件

版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8404604.html

相比微信的登录和分享功能,微信支付sdk的接入显得相当简单,因为大部分的事情需要由服务端或者后台来做

基本流程如下:

  1、客户端向服务端发起购买商品请求

  2、服务端计算实际支付金额,向微信请求订单

  3、微信返回预支付订单信息,服务端将该信息传给客户端

  4、客户端解析预支付订单信息json,向微信发起支付请求

  5、支付成功后,微信向服务端预设的url和客户端返回支付结果

  6、服务端刷新用户商品数据,并向客户端推送支付结果

核心函数只有一个

    public static void SendPay(String appId, String partnerId, String prepayId, String nonceStr, String timeStamp, String packageValue, String sign) {
        PayReq req = new PayReq();
        req.appId = appId;
        req.partnerId = partnerId;
        req.prepayId = prepayId;
        req.nonceStr = nonceStr;
        req.timeStamp = timeStamp;
        req.packageValue = packageValue;
        req.sign = sign;
        api.sendReq(req);
    }

回调的处理和分享类似,java类文件名为WXPayEntryActivity,该类继承Activity并实现IWXAPIEventHandler,同样需要放在wxapi文件夹中

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler   {
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(api == null) {
            api = WXAPIFactory.createWXAPI(this, "APP_ID");
            api.registerApp("APP_ID");
            api.handleIntent(getIntent(), this);
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {
    }

    @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            UnityPlayer.UnitySendMessage("ThirdPartySdkManager","WechatPayCallback", String.valueOf(resp.errCode));
            finish();
        }
    }
}

支付返回的errCode为int型:

  -2对应取消支付

  -1对应支付失败

  0为支付成功

不过这个值仅仅只是用户支付的结果,但不意味着支付到账,所以实际数据的更新,要取决于服务器

原文地址:https://www.cnblogs.com/unityExplorer/p/8404604.html

时间: 2024-10-14 06:12:40

unity探索者之微信支付,非第三方插件的相关文章

unity探索者之支付宝支付,非第三方插件

版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405044.html 支付宝的sdk接入方式和微信支付比较类似,大部分的工作也基本是由服务端去做,客户端只负责支付部分 调用支付宝支付的java核心代码其实只有一行:alipay.payV2()(如果不需要支付的结果的话...) public class AliPay { private static final int SDK_PAY_FLAG = 1; @SuppressLi

微信支付或再降门槛 向第三方服务商开门

继不久前取消保证金后,微信支付还有继续降低门槛的迹象.亿邦动力网了解到,微信第三方服务商口袋通近期已在内测与微信支付的对接,而在此之前,微信支付只针对商户开放了接口,包括口袋通.微盟等在内的第三方服务商都不能直接接入微信支付. 据口袋通商户运营总监冷面介绍,对于大多数的商户而言,微信支付的门槛仍然太高,因此口袋通正在尝试自己接入微信支付,让商户通过口袋通的微信支付收款.目前已经有几百家商户在内测这一支付方式,口袋通会根据自己的准入机制对商户进行审核. 亿邦动力网了解到,不久前口袋通下线了其原有的

微信支付完成后跳转的页面

微信支付完成后不能跳转指定的页面,多半原因是前段js写错了,也就是微信支付调起H5插件的那部分,这个是微信支付调h5插件的开发文档https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 下面小编把自己的前段支付js送给大家参考 function 支付按钮(){ var appId = "${appid}"; var timeStamp = "${timeStamp}"; var

获取微信支付所需签名等

@RequestMapping(value = "/toPay", method = RequestMethod.POST) @ResponseBody public String getShowCode(@RequestParam(value = "openid", required = false) String openid, @RequestParam(value = "shouprices", required = false) Str

第三方插件-微信支付接入注意问题

1.对于订单的签名在服务端,因此客户端相对比较简单. 2.调用支付界面 <span style="font-family:Comic Sans MS;font-size:14px;"> private void weixinPay() { Map<String, String> mapOrder = getOrderMap(); api = WXAPIFactory.createWXAPI(WebPayActivity.this,null); api.regis

非微信内置浏览器中的网页调起微信支付的方案研究

问题来源 之前在app中集成过微信支付,当时还写了一篇扫坑贴,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方店铺的网页,在第三方网页中有微信支付按钮,测试反馈说ios可以调起微信支付,而android不可以.后来网上看到说微信内置Webview和京东的网页也可以调起微信支付,微信自己没什么奇怪的,而京东可以的话,如果它跟微信没什么合作协议的话,那么其他app应该也可以在网页中调用微信

微信支付:手机系统自带的浏览器,调用微信支付如何实现(非扫码)

Q:翻看了微信支付的api没发现支持h5调支付接口的情况(微信js除外),然后却发现美团的支付成功调用了,这是怎么实现的?     A: 使用微信H5支付即可.H5支付通过URL调起微信APP,不涉及到应用签名,可解决一次申请给多款APP使用的问题,看看现在游戏分发行业就知道了. 现在从官网申请到的APP支付(即通过SDK调起微信APP),如果适用在公司只有几款APP的情况,完全没问题.但是如果一家公司有几十几百款APP的话,使用APP支付就不合适了.(APP支付要求申请APPID,但每家公司主

【Unity】微信支付官方安卓Demo的使用问题

Unity3d使用微信支付是属于APP内发起支付调用的情况,其本质上是在安卓项目上使用微信SDK,安卓项目开发完成后再导入到Unity中作为Unity插件使用,即Unity中C#调用安卓(Java)代码的流程. 微信官方给出的支付Demo在这里,但是使用过程中遇到很多坑,网上类似的文章很多,但大多年代久远,不清楚其他人做安卓微信支付是否也是踩着这些坑过来的,总之记录下来方便以后再遇到. 首先,该Demo居然是个远古时代的Eclipse(基于ADT插件)的安卓项目!你可以选择下载Eclipse和A

Cordova - 彻底搞定安卓中的微信支付插件!

你看到这个标题肯定会惊讶,一个Cordova的微信支付插件,有这么夸张吗?信不信由你,我相信,最终你会回来看这篇文章的! 一,不要使用的微信支付插件:https://github.com/xu-li/cordova-plugin-wechat 上面的插件,是目前大家在网上搜索文章时候,推荐最多的插件,但是,插件开发者,已经不再维护这个插件了,从最新版插件的代码看,确实是那样,其中从2.1.0开始的bug,到了最终的2.3.0也没有修复,而且还增加了bug!如果你不相信我的话,真的想使用上面这个插