首先要为 egret 工程引入第三方库

  Egret 接第三方库:http://edn.egret.com/cn/index.php?g=&m=article&a=index&id=172

  写的好复杂,以加入 md5 库为例子:

    -> 为 md5 的js文件 制作 ts 头文件;

  -> 在 egret工程外建一个目录,比如叫 third;

  -> 继续建目录 third/md5/bin/md5;

  -> 将js源文件与ts头文件加入;

     -> 在 egret 的 egretProperties.json 加入第三方库的描述;

     -> 编译后在 modules 目录下就可以看到被包含的第三方库了;

    

  生产环境下将第三方库放在工程目录同级的目录下,用相对路径引用,方便svn管理。

使用 egret 提供的 Http 功能,注意如何用 POST 发送带参数据

  1. var transIdRequest = new egret.HttpRequest();
  2. transIdRequest.responseType = egret.HttpResponseType.TEXT;
  3. transIdRequest.open("http://114.215.211.10:90/IAppPayTransId.aspx", egret.HttpMethod.POST);
  4. transIdRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  5. var cpPrivateInfo = regionId + "|" + serverId + "|" + sdkType + "|" + userId.toString() + "|" + waresId.toString();
  6. var parameters = encodeURIComponent("userid=" + userId.toString() + "&waresid=" + waresId.toString() + "&cpPrivateInfo=" + cpPrivateInfo);
  7. transIdRequest.send(parameters);
  8.  
  9. transIdRequest.addEventListener(egret.Event.COMPLETE, this.OnTransIdComplete, this);
  10. transIdRequest.addEventListener(egret.IOErrorEvent.IO_ERROR, this.OnGetIOError, this);
  11. transIdRequest.addEventListener(egret.ProgressEvent.PROGRESS, this.OnGetProgress, this);

使用 APS.NET 站点:

  针对egret客户端的 Post + Content-Type:application/x-www-form-urlencoded 模式,.NET 的结构是:

  1. HttpRequest.Form

UrlEncode 与 UrlDecode:

  可以在 http 传输过程中,将敏感字符编码起来,规避http常用的特殊字符,因此协议如何解码,则要看协议对何处进行了编码。

egret 报跨域访问的问题:

  在 IIS 的响应标头加入 “Access-Control-Allow-Origin” “*”。

唤起爱贝支付页面的问题:

  

  data 就是一个 json 串,但是示例的data transId 没有用双引号引起来。

  另外只要填一个 redirecturl 给出支付完成后的自动跳转地址即可。

egret ts 代码:

  1. private OnOrderDataComplete(event:egret.Event):void
  2. {
  3. var request = <egret.HttpRequest>event.currentTarget;
  4. console.log("get orderdata : ",request.response);
  5. this.OrderData = <AiBeiOrder>JSON.parse(request.response);
  6. this.PayInstance.clickAibei(this.OrderData);
  7. }
  8.  
  9. class AiBeiOrder
  10. {
  11. private transId:string;
  12. private retFunc:string;
  13. private baseZIndex:number;
  14. private redirecturl:string;
  15. private cpurl:string;
  16. private sign:string;
  17. private signtype:string;
  18. }

接下来做一个定时器定时向订单服务器请求订单结果即可。

Egret 双端接入爱贝支付遇到的问题的更多相关文章

  1. 智齿客服网页端接入文档V2.3

    产品介绍 智齿客服网页端接入提供以下两种部署方式. 一.网页组件(推荐) 通过智齿客服网站咨询组件,企业的用户可快捷联系到企业客服获取帮助.智齿客服网页组件提供强大的用户行为采集能力和系统对接能力,支 ...

  2. PHP PC端接入支付宝和微信感悟

    想着中秋节的时候把异步线程学习完,同事说有个PHP的支付要帮忙做一下,虽然中秋节计划是把C#的异步学完,不过还是喜欢挑战,好久没有像大学一样这么认真的熬夜解决问题了.由于在大学学过asp,它和php有 ...

  3. Android支付接入(三):电信爱游戏支付

    原地址:http://blog.csdn.net/simdanfeg/article/details/9011977 注意事项: 1.电信要求必须先启动电信的闪屏界面 2.非网络游戏不允许有Inter ...

  4. SDK接入(2)之Android Google Play内支付(in-app Billing)接入

    SDK接入(2)之Android Google Play内支付(in-app Billing)接入 继上篇SDK接入(1)之Android Facebook SDK接入整理完Facebook接入流程之 ...

  5. iOS 微信支付

    相关资料 SDK下载:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1 APP端开发步骤说明:https://pay.weixin ...

  6. IOS开发之—— iOS 支付 [支付宝、银联、微信]

    支付宝iOSsdk官方下载sdk地址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId ...

  7. iOS微信支付

    SDK接入 服务器签名版本 官方已经是建议使用服务器签名来接入微信支付,实际上从安全上考虑,确实是每个客户端不应该知道RAS密钥,也不需要每个客户端都写一遍签名的算法. 服务端接入流程文档:https ...

  8. iOS-iOS 支付 [支付宝、银联、微信](转)

    支付宝iOSsdk官方下载sdk地址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId ...

  9. 小程序完整对接 pingpp支付

    小程序完整对接 pingpp支付 有几个先要条件: 小程序需要企业认证且开通支付功能,个人认证是无法使用支付功能的(小程序微信支付官网) pingpp 本身接入的企业服务器(即商户服务器)并不强制要求 ...

随机推荐

  1. mvcc摘抄

    MVCC浅析原文:---->>>>>> http://blog.csdn.net/chosen0ne/article/details/18093187 在并发读写数 ...

  2. memcached与redis 对比

    一. 综述 读一个软件的源码,首先要弄懂软件是用作干什么的,那memcached和redis是干啥的?众所周知,数据一般会放在数据库中,但是查询数据会相对比较慢,特别是用户很多时,频繁的查询,需要耗费 ...

  3. C# 自动登录网页,浏览页面【转载】

    需求:客户的数据同时存在在另外一个不可控的系统中,需要和当前系统同步. 思路:自动登录另外一个系统,然后抓取数据,同步到本系统中. 技术点:模拟用户登录:保存登录状态:抓取数据 /// <sum ...

  4. JavaCodeTra 猴子选猴王 约瑟夫循环

    之前用的是循环链表,java刚学,不知道怎么用链表.用个小算法吧 代码: import java.util.Scanner; /** * */ /** * @author john * @约瑟夫循环/ ...

  5. .Net4.0如何实现.NET4.5中的Task.Run及Task.Delay方法

    前言 .NET4.0下是没有Task.Run及Task.Delay方法的,而.NET4.5已经实现,对于还在使用.NET4.0的同学来说,如何在.NET4.0下实现这两个方法呢? 在.NET4.0下, ...

  6. linux系统下安装wget。

    我们先安装linux系统比如centos7.1里面有的就没有wget下载工具.wget这个命令就不可以使用. 我们使用 yum -y install wget yum install perl 会出现 ...

  7. node.js中文资料导航

    以下资料来自gitHUb上面:https://github.com/youyudehexie/node123 Node.js HomePage Node官网七牛镜像 Infoq深入浅出Node.js系 ...

  8. 【转】到底EJB是什么

    [转]到底EJB是什么 到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水.百度了很久,也从网络的文章的只言片语中,渐渐有了头绪. 用通俗话说,EJB就是:&quo ...

  9. 利用反射把数据集合转换成List

    ---ResultSet数据集 public static List toList(ResultSet rs, Class cls) { List list = new ArrayList(); tr ...

  10. Android之提交数据到服务端方法简单封装

    在Android应用中,除了单机版的应用,其余的应用免不了需要频繁地与服务端进行数据交互,如果每一种方法都独立写一段代码,那会造成代码大量重复,冗余,这不是我们所希望的,所以我们可以对其进行一些封装, ...