0.0.3 • Published 7 years ago

react-native-umpay v0.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
7 years ago

react-native-umpay

对联动优势提供的sdk进行RN封装 支持Android、IOS

安装配置

  • npm install react-native-umpay
  • react-native link
  • 根据联动优势给出的文档进行配置
  • Android需要的额外配置

    • android\settings.gradle中添加(如果上述link命令没做到的话)
      include 'react-native-umpay'
      project(':react-native-umpay').projectDir = new File(rootProject.projectDir, '../   node_modules/react-native-umpay/android')
    • android\app\build.gradle中添加 compile project(':react-native-umpay') 以及 compile 'org.greenrobot:eventbus:3.0.0’
    • MainActivity.java中引入 import com.jimmydaddy.umpay.UmpayModule; 以及 import org.greenrobot.eventbus.EventBus;
    • 重写onActivityResult如下:
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (requestCode == UmpayModule.REQUEST_CODE){
              EventBus.getDefault().post(data);
          }
          super.onActivityResult(requestCode, resultCode, data);
      }
    • MainApplication.java中引入import com.jimmydaddy.umpay.UmpayPackage;添加如下代码
  @Override
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new UmpayPackage()//添加这个
    );
  }
  • IOS需要的额外配置:右键点击你的项目,选择Add files to XXX,找到node_modules下的react-native-umpayios文件夹里找到umpLibraryBundle.bundle,将之添加到你的项目中(如果不添加,在弹出的联动优势页面中将没有图片icon以及样式)

使用

//绑定
/**
 * data 需包含以下字段  { identityCode, cardHolder, merCustId, merId, signInfo, cardType, shortBankName, editFlag };
 * @type {[type]}
 */
UMpay.bindCard(data).then(() => {
  Toast.show('绑定成功');
  this._getData();
}).catch((err) => {
  const errObjStr = JSON.stringify(err);
  const errObj = JSON.parse(errObjStr);
  if (errObj.code === '1001') {
    Toast.show('您取消了操作');
  } else {
    Toast.show('绑定失败');
  }
});

    ....

/**
 * 支付 (支付不建议在客户端操作)
 * data 需包含以下字段   { identityCode, tradeNo, cardHolder, merCustId, cardType, shortBankName, editFlag };
 * @type {[type]}
 */
UMPay.pay(data).then(() => {
  Toast.show('支付成功');
}).catch((err) => {
  const errObjStr = JSON.stringify(err);
  const errObj = JSON.parse(errObjStr);
  if (errObj.code === '1001') {
    Toast.show('您取消了操作');
  } else {
    Toast.show('支付失败');
  }
})