react.js接入支付宝支付

电脑网站支付/手机网站支付

一般服务端都会用post请求,也就是返回的form表单,示例如下:

<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&format=json&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&app_id=2017060101317939&sign_type=RSA2&timestamp=2014-07-24+03%3A07%3A50">
<input type="hidden" name="biz_content" value="{&quot;time_expire&quot;:&quot;2016-12-31 10:05:01&quot;,&quot;extend_params&quot;:&quot;&quot;,&quot;query_options&quot;:&quot;[\&quot;hyb_amount\&quot;,\&quot;enterprise_pay_info\&quot;]&quot;,&quot;settle_info&quot;:&quot;&quot;,&quot;subject&quot;:&quot;Iphone6 16G&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,&quot;body&quot;:&quot;Iphone6 16G&quot;,&quot;qr_pay_mode&quot;:&quot;1&quot;,&quot;integration_type&quot;:&quot;PCWEB&quot;,&quot;merchant_order_no&quot;:&quot;20161008001&quot;,&quot;sub_merchant&quot;:&quot;&quot;,&quot;invoice_info&quot;:&quot;&quot;,&quot;ext_user_info&quot;:&quot;&quot;,&quot;timeout_express&quot;:&quot;90m&quot;,&quot;disable_pay_channels&quot;:&quot;pcredit,moneyFund,debitCardExpress&quot;,&quot;agreement_sign_params&quot;:&quot;&quot;,&quot;royalty_info&quot;:&quot;&quot;,&quot;store_id&quot;:&quot;NJ_001&quot;,&quot;request_from_url&quot;:&quot;https://&quot;,&quot;qrcode_width&quot;:&quot;100&quot;,&quot;goods_detail&quot;:&quot;&quot;,&quot;enable_pay_channels&quot;:&quot;pcredit,moneyFund,debitCardExpress&quot;,&quot;out_trade_no&quot;:&quot;20150320010101001&quot;,&quot;total_amount&quot;:&quot;88.88&quot;,&quot;business_params&quot;:&quot;{\&quot;mc_create_trade_ip\&quot;:\&quot;127.0.0.1\&quot;}&quot;,&quot;promo_params&quot;:&quot;{\&quot;storeIdType\&quot;:\&quot;1\&quot;}&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>

前端展示的方式分为两种 

第一种

const div = document.createElement('formdiv');
div.innerHTML = data.data.form;
document.body.appendChild(div);
document.forms['根据服务端返回的form表单的name同步'].setAttribute('target', '_self');
document.forms['根据服务端返回的form表单的name同步'].submit();
div.remove();

这里的data.data.form 是服务端返回的form表单  setAttribute('target', '_self'); tartget 设置为self,是为了兼容 safari浏览器 以及其他兼容问题

第二种

 var iframe = document.createElement('iframe');
 // 设置iframe的属性
  iframe.width = '500'; // 设置宽度
  iframe.height = '500'; // 设置高度
  iframe.srcdoc = 服务端返回的form表单;
  document.body.appendChild(iframe);

这个展示可能不太友好, 可以根据业务需求展示成弹框也可以 , 手机网站支付一般都展示第一种方式

小程序文档 - 支付宝文档中心

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将React应用程序接入支付宝沙箱,您需要完成以下步骤: 1. 首先,按照支付宝提供的文档完成支付宝的申请。您可以参考支付宝官方文档:https://opendocs.alipay.com/support/01razc。 2. 在您的React Native项目的`android/app/build.gradle`文件中添加以下代码: ```groovy dependencies { // 其他依赖项... compile fileTree(dir: "libs", include: ["*.aar"]) compile files('libs/alipaysdk-15.8.06.211122170115.aar') } ``` 3. 创建一个名为`ZhifubaoPackage`的类,该类实现了`ReactPackage`接口,***```java import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ZhifubaoPackage implements ReactPackage { @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules = new ArrayList<>(); modules.add(new AlipayModule(reactContext)); return modules; } } ``` 4. 在您的React Native应用的主`MainApplication.java`文件中注册`ZhifubaoPackage`。您可以在`getPackages()`方法中添加以下代码: ```java @Override protected List<ReactPackage> getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List<ReactPackage> packages = new PackageList(this).getPackages(); packages.add(new ZhifubaoPackage()); // 添加这一行 return packages; } ``` 5. 接下来,您需要创建一个名为`AlipayModule`的模块类,该类继承自`ReactContextBaseJavaModule`。您可以在这个模块类中实现支付宝相关的功能。根据您的需求,您可以添加支付、查询订单等相关方法。 完成以上步骤后,您的React Native应用就已成功接入支付宝沙箱。请根据您的具体需求进一步实现相关功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值