citconPay

概述

Citcon简介

Citcon 创办于 2015 年,是一家移动支付及跨境商务解决方案提供商,主要为北美的商户提供线上及线下的移动支付服务。Citcon现有的合作伙伴位于纽约、拉斯维加斯、旧金山、洛杉矶、芝加哥、迈阿密、波士顿、温哥华等多个北美城市及区域。

在商户端,Citcon为多个的商家提供包括app、POS机以及系统集成等不同的支付及营销产品,覆盖奢侈品、机场零售、旅游、电商、餐饮等各行业头部企业客户,如 DFS 集团、DFA、凯撒娱乐、美高梅集团、西蒙购物,以及餐饮连锁小肥羊、海底捞等品牌,预计 2019 年服务的全球商家客户数量预计达 5 万家。

Citcon 表示,目前微信支付和支付宝在北美的支付业务有一半以上都由 Citcon 负责。同时,Citcon 也与银联展开合作,帮助银联云闪付在北美落地。Citcon 为第三方支付公司和境外商家之间提供支付平台,不仅提供技术方案,也提供清算服务。此外, Citcon也为中国领事馆提供驻外领馆支付方案,现已与纽约、旧金山、洛杉矶、芝加哥、休斯顿、华盛顿等领馆建立合作。

插件概述

CPay 插件封装了 Citcon 支付的移动端 SDK。通过此插件可集成微信、支付宝支付到 App 内。

CPay 使用步骤:

  1. 此插件必须在真机环境下使用

  2. 使用前商户必须 联系 CITCON 与之签约获得 token。或者访问 文档中心 申请测试 token。

  3. 你还需要访问 微信开放平台支付宝开放平台 申请微信、支付宝开发者账号,并创建 App 获取其 AppID 等相关信息。

  4. 使用此插件前需先配置 config.xml文件,方法如下:

    • 名称:CPay

    • 参数:urlScheme

    • 配置示例:

      <feature name="CPay">
          <param name="urlScheme" value="YourWechatPayAppID" />
          <param name="urlScheme" value="YourAlipayScheme" />
          <param name="token" value="YourCitconToken" />
          <param name="mode" value="YourCitconMode" />
      </feature>
      
    • 字段描述:

      urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动支付宝、微信客户端,也可以从支付宝、微信客户端跳回本应用(此时需要应用打包或自定义loader才能测试本功能)。urlScheme 的 value 值分别在微信、支付宝开放平台获取。

      token:联系 CITCON 与之签约获得 token。或者访问 文档中心 申请测试 token。亦可通过 key.xml 文件配置,详情参考下文。

      mode:运行模式:DEV、UAT、PROD。亦可通过 key.xml 文件配置,详情参考下文。

在 iOS 端使用本插件之前还需做如下配置:

1,添加白名单,如下:

 <preference name="querySchemes" value="weixin,wechat,alipay,safepay" />

关于白名单解释详情参考 YonBuilder移动开发 官方文档之-----配置可被检测的URL Scheme

2,配置ATS(App Transport Security):某些网络访问需要配置 plist 文件,使 APP 能够访问 http 协议。配置方法参考 iOS 修改 Info.plist 之配置 ATS(例3.1) 。配置示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
</dict>
</plist>

token 加密配置

为提高安全性 token 和 mode 可通过 key.xml 文件设置,若 config.xml 文件内已经配置,则以config.xml 为准。配置key.xml 文件配置完成放在 widget 下的 res 文件下即可,服务器应用打包时会将此文件加密。注意测试此功能需应用打包,否则报错。 CPay 插件原生代码会自动读取该文件中的 token 等参数,提高安全性。key.xml 文件格式如下:

```js
<?xml version="1.0" encoding="UTF-8" ?>
<security>
<item name="CPay_token" value="*********"/>
<item name="CPay_mode" value="***"/>
<item name="其它服务需加密的参数配置 " value="***"/>
.
.
.
</security> 
```
  • 字段描述:

    CPay_token:联系 CITCON 与之签约获得 token。或者访问 文档中心 申请测试 token。 CPay_mode:运行模式:DEV、UAT、PROD

插件接口

setEnvironment

配置运行环境

setEnvironment({params})

params

token:

  • 类型:字符串
  • 描述:(可选项)联系 CITCON 与之签约获得 token。或者访问 文档中心 申请测试 token。若为空则从 key.xmlconfig.xml 文件读取,优先读取 key.xml

mode:

  • 类型:布尔
  • 描述:(可选项) 运行模式:DEV、UAT、PROD。若为空则从 key.xmlconfig.xml 文件读取,优先读取 key.xml

示例代码

var CPay = api.require('CPay');
CPay.setEnvironment({
    mode: 'DEV',
    token: '123*******'
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

requestOrder

支付

requestOrder({params}, callback(ret))

params

referenceId:

  • 类型:字符串
  • 描述:referenceId

currency:

  • 类型:字符串
  • 描述:货币代号:USD, CNY

vendor:

  • 类型:字符串
  • 描述:支付平台:wechatpay、alipay

amount:

  • 类型:字符串
  • 描述:支付金额
  • 单位:分

subject:

  • 类型:字符串
  • 描述:商品主题

body:

  • 类型:字符串
  • 描述:商品简介

ipnUrl:

  • 类型:字符串
  • 描述:IPN Url

callbackUrl:

  • 类型:字符串
  • 描述:回调url

transactionId:

  • 类型:字符串
  • 描述:transactionId

allowDuplicate:

  • 类型:布尔
  • 描述:(可选项)是否允许重复
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   eventType:'',           //字符串类型;事件类型:cancel、success
   result: {               //JSON对象;仅当 eventType为 success是有值
      message:'',          //字符串类型;消息
      result:'',           //字符串类型;结果
      order:{              //JSON对象;订单信息
         referenceId:'',   //字符串类型;
         amount:'',        //字符串类型;
         currency:'',      //字符串类型;
         vendor:'',        //字符串类型;
         subject:'',       //字符串类型;
         body:'',          //字符串类型;
         ipnUrl:'',        //字符串类型;
         scheme:'',        //字符串类型;
         callbackUrl:'',   //字符串类型;
         transactionId:''  //字符串类型;
      }
   }
}

示例代码

var CPay = api.require('CPay');
CPay.requestOrder({
    referenceId: '12345678901234',
    currency: 'USD',
    vendor:'wechatpay',
    subject:'A字体恤',
    body:'shake your body side to side',
    ipnUrl:'https://www.apicloud.com',
    callbackUrl:'https://www.apicloud.com',
    transactionId:'212',
    allowDuplicate:false
}, function(ret) {
    api.alert({
        title: '支付结果',
        msg: JSON.stringify(ret),
        buttons: ['确定']
    });
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

checkOrder

checkOrder({params}, callback(ret)) Android 暂不支持该方法

params

referenceId:

  • 类型:字符串
  • 描述:(可选项)referenceId

currency:

  • 类型:字符串
  • 描述:(可选项)货币代号:USD, CNY

vendor:

  • 类型:字符串
  • 描述:(可选项)支付平台:wechatpay、alipay

subject:

  • 类型:字符串
  • 描述:(可选项)商品主题

body:

  • 类型:字符串
  • 描述:(可选项)商品简介

ipnUrl:

  • 类型:字符串
  • 描述:(可选项)IPN Url

callbackUrl:

  • 类型:字符串
  • 描述:(可选项)回调url

transactionId:

  • 类型:字符串
  • 描述:transactionId

allowDuplicate:

  • 类型:布尔
  • 描述:(可选项)是否允许重复
  • 默认:false

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    transactionId:'',     //字符串类型;
    referenceId:'',       //字符串类型;
    type:'',              //字符串类型;
    amount:'',            //字符串类型;
    currency:'',          //字符串类型;
    time:'',              //字符串类型;
    status:'',            //字符串类型;
    refund_status:'',     //字符串类型;
    refunded_amount:'',   //字符串类型;
    note:''               //字符串类型;
}

示例代码

var CPay = api.require('CPay');
CPay.checkOrder({
    currency: 'USD'
}, function(ret) {
    api.alert({
        title: '订单详情',
        msg: JSON.stringify(ret),
        buttons: ['确定']
    });
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

paymentFinishedLisetner

支付完成事件监听

paymentFinishedLisetner(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
     
    transactionId:'',     //字符串类型;(android中没有该参数)
    referenceId:'',       //字符串类型;
    type:'',              //字符串类型;
    amount:'',            //字符串类型;
    currency:'',          //字符串类型;
    time:'',              //字符串类型;
    status:'',            //字符串类型;
    refund_status:'',     //字符串类型;
    refunded_amount:'',   //字符串类型;
    note:''               //字符串类型;
}

示例代码

var CPay = api.require('CPay');
CPay.paymentFinishedLisetner(function(ret) {
    api.alert({msg:JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/05/31