From 36a7347c6e9ca1cbd3457c7ef93d620448bb9f29 Mon Sep 17 00:00:00 2001 From: zakzheng <1258645603@qq.com> Date: Mon, 5 Aug 2019 16:45:43 +0800 Subject: [PATCH] add sandbox --- README.md | 6 ++++++ .../src/main/java/com/reactlibrary/AlipayModule.java | 11 +++++++++++ index.d.ts | 3 +++ 3 files changed, 20 insertions(+) diff --git a/README.md b/README.md index 60e614a..c578424 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ try { } ``` +### Alipay.setAlipaySandbox(isSandbox) + +- `isSandbox` {boolean} Whether to open sandbox. Must be payed before use. See [使用沙箱环境](https://docs.open.alipay.com/200/105311) + ### Alipay.pay(orderStr) - `orderStr` {String} Order info in query string format. Must be signed before use. See [App payment request params description](https://docs.open.alipay.com/204/105465/). @@ -121,6 +125,8 @@ import Alipay from '@0x5e/react-native-alipay'; // APP支付 try { + // 打开沙箱 + Alipay.setAlipaySandbox(true) let orderStr = 'app_id=xxxx&method=alipay.trade.app.pay&charset=utf-8×tamp=2014-07-24 03:07:50&version=1.0¬ify_url=https%3A%2F%2Fapi.xxx.com%2Fnotify&biz_content=%7B%22subject%22%3A%22%E5%A4%A7%E4%B9%90%E9%80%8F%22%2C%22out_trade_no%22%3A%22xxxx%22%2C%22total_amount%22%3A%229.00%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&sign_type=RSA2&sign=xxxx'; // get from server, signed let response = await Alipay.pay(orderStr); console.info(response); diff --git a/android/src/main/java/com/reactlibrary/AlipayModule.java b/android/src/main/java/com/reactlibrary/AlipayModule.java index 84cfb64..43d5252 100644 --- a/android/src/main/java/com/reactlibrary/AlipayModule.java +++ b/android/src/main/java/com/reactlibrary/AlipayModule.java @@ -1,6 +1,7 @@ package com.reactlibrary; +import com.alipay.sdk.app.EnvUtils; import com.alipay.sdk.app.H5PayCallback; import com.alipay.sdk.util.H5PayResultModel; import com.alipay.sdk.app.AuthTask; @@ -42,6 +43,16 @@ public void run() { thread.start(); } + // 添加沙箱模式 + @ReactMethod + public void setAlipaySandbox(Boolean isSandbox) { + if(isSandbox){ + EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX); + }else { + EnvUtils.setEnv(EnvUtils.EnvEnum.ONLINE); + } + } + @ReactMethod public void pay(final String orderInfo, final Promise promise) { Runnable runnable = new Runnable() { diff --git a/index.d.ts b/index.d.ts index 8b3ca9e..edcbd18 100644 --- a/index.d.ts +++ b/index.d.ts @@ -10,6 +10,9 @@ declare namespace Alipay { function authWithInfo(infoStr: string): IResult; + // 设置沙箱模式 + function setAlipaySandbox(isSandbox: boolean): void + function pay(infoStr: string): IResult; function payInterceptorWithUrl(infoStr: string): {