- 小程序云开发支付,没有我自己的服务器。怎样用一个云函数收到支付回调通知?
我的小程序纯粹云开发,用云数据库,没有自己的服务器。 业务需求:微信购物,支付,成功后更改商品状态(比如“待支付”变成“已支付”)。 目前用的是这个tenpay (https://blog.csdn.net/qiushi_1990/article/details/99347580),完成下单,其实tenpay背后应该是用了“统一下单API (https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)”,可以指定一个“通知地址 notify_url 参数”但是必须是我自己的服务器网址,比如http://hello-world.com/。但是我没有自己的服务器,也就意味着我无法获得用户支付成功的通知,也不能靠这个来触发回调函数(比如更改商品状态)。 客户端支付的代码是这个API: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html。在这个客户端我可以写一个支付成功的success回调函数,比如 success(){ /* 从客户端触发云函数,更改商品状态为“已支付” */ call_cloud_function_to_change_products_to_paid_status(); } 如果这样做就意味着第一步:用户A进行了支付。第二步:用户A自己通知后台“我已经付了钱了。请发货。”由于这2步代码都在前端,那么黑客岂不是可以直接触发第二步函数,骗商家发货。理想方法应该是第一步:用户A支付。第二步:腾讯主动触发我的云函数X,通知我继续发货等。请问该怎么解决我的问题? 另外,我也注意到,如果用CloudPay.unifiedOrder() https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/open/pay/CloudPay.unifiedOrder.html 则可以指定一个云函数作为支付成功后的回调,但是它需要 sub_mch_id (子商户号)而不能用 mch_id 或 merchant_id (商户号)。目前我的情况是只有一个商户号,没有子商户号。我是否应该去弄一个子商户号?
2020-12-06 - 小程序支付,想要直接显示密码键盘,而不想要二维码
在用电脑微信开发工具,在开发小程序时,我点击自己的button,调用wx.requestPayment() https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html, 并正确传入了参数等。 目前行为:点击button,(在电脑开发工具的模拟手机上)弹出了支付二维码,并提示用我自己的手机扫码,(在手机上)正常支付。 理想行为:点击button,不弹出二维码,而是(在电脑开发工具的模拟手机上)直接弹出让我输入支付密码的键盘。 我的理想运用场景:用户在小程序选了商品,点击“支付”,就应该直接可以输入支付密码了。而不是点击“支付”,然后跳出一个二维码,然后再找其他手机来扫这个码进行支付。 请问怎样实现理想行为?应该用其他函数吗?
2020-12-02